diff --git a/.obsidian/plugins/hoarder-sync/data.json b/.obsidian/plugins/hoarder-sync/data.json index 579af73..6cabcfe 100644 --- a/.obsidian/plugins/hoarder-sync/data.json +++ b/.obsidian/plugins/hoarder-sync/data.json @@ -4,7 +4,7 @@ "syncFolder": "Hoarder", "attachmentsFolder": "Hoarder/attachments", "syncIntervalMinutes": 60, - "lastSyncTimestamp": 1779098839310, + "lastSyncTimestamp": 1779102439179, "updateExistingFiles": false, "excludeArchived": true, "onlyFavorites": false, diff --git a/01 Projects/oliver-sales-ops-platform/graph.html b/01 Projects/oliver-sales-ops-platform/graph.html new file mode 100644 index 0000000..687bf73 --- /dev/null +++ b/01 Projects/oliver-sales-ops-platform/graph.html @@ -0,0 +1,305 @@ + + + + +graphify - /Users/ai_leed/Documents/Projects/Oliver/oliver-sales-ops-platform/graphify-out/graph.html + + + + +
+ + + + + \ No newline at end of file diff --git a/01 Projects/pdf-accessibility/graph.html b/01 Projects/pdf-accessibility/graph.html new file mode 100644 index 0000000..be5ad9f --- /dev/null +++ b/01 Projects/pdf-accessibility/graph.html @@ -0,0 +1,305 @@ + + + + +graphify - /Users/ai_leed/Documents/Projects/Oliver/pdf-accessibility/graphify-out/graph.html + + + + +
+ + + + + \ No newline at end of file diff --git a/01 Projects/pimco-charts/graph.html b/01 Projects/pimco-charts/graph.html new file mode 100644 index 0000000..71c778d --- /dev/null +++ b/01 Projects/pimco-charts/graph.html @@ -0,0 +1,305 @@ + + + + +graphify - /Users/ai_leed/Documents/Projects/Oliver/pimco-charts/graphify-out/graph.html + + + + +
+ + + + + \ No newline at end of file diff --git a/01 Projects/presenton/graph.html b/01 Projects/presenton/graph.html new file mode 100644 index 0000000..98bc803 --- /dev/null +++ b/01 Projects/presenton/graph.html @@ -0,0 +1,305 @@ + + + + +graphify - /Users/ai_leed/Documents/Projects/Oliver/presenton/graphify-out/graph.html + + + + +
+ + + + + \ No newline at end of file diff --git a/01 Projects/sandbox-notebookllamalm-nextjs/graph.html b/01 Projects/sandbox-notebookllamalm-nextjs/graph.html new file mode 100644 index 0000000..fa96fd6 --- /dev/null +++ b/01 Projects/sandbox-notebookllamalm-nextjs/graph.html @@ -0,0 +1,305 @@ + + + + +graphify - /Users/ai_leed/Documents/Projects/Oliver/sandbox-notebookllamalm-nextjs/graphify-out/graph.html + + + + +
+ + + + + \ No newline at end of file diff --git a/01 Projects/semblance/graph.html b/01 Projects/semblance/graph.html new file mode 100644 index 0000000..29a6bc9 --- /dev/null +++ b/01 Projects/semblance/graph.html @@ -0,0 +1,305 @@ + + + + +graphify - /Users/ai_leed/Documents/Projects/Oliver/semblance/graphify-out/graph.html + + + + +
+ + + + + \ No newline at end of file diff --git a/01 Projects/smartcrop26/graph.html b/01 Projects/smartcrop26/graph.html new file mode 100644 index 0000000..061847c --- /dev/null +++ b/01 Projects/smartcrop26/graph.html @@ -0,0 +1,305 @@ + + + + +graphify - /Users/ai_leed/Documents/Projects/Oliver/smartcrop26/graphify-out/graph.html + + + + +
+ + + + + \ No newline at end of file diff --git a/01 Projects/social-reporting-tool/graph.html b/01 Projects/social-reporting-tool/graph.html new file mode 100644 index 0000000..5ee501d --- /dev/null +++ b/01 Projects/social-reporting-tool/graph.html @@ -0,0 +1,305 @@ + + + + +graphify - /Users/ai_leed/Documents/Projects/Oliver/social-reporting-tool/graphify-out/graph.html + + + + +
+ + + + + \ No newline at end of file diff --git a/01 Projects/solventum-image-metadata/graph.html b/01 Projects/solventum-image-metadata/graph.html new file mode 100644 index 0000000..e39bf01 --- /dev/null +++ b/01 Projects/solventum-image-metadata/graph.html @@ -0,0 +1,305 @@ + + + + +graphify - /Users/ai_leed/Documents/Projects/Oliver/solventum-image-metadata/graphify-out/graph.html + + + + +
+ + + + + \ No newline at end of file diff --git a/01 Projects/video-accessibility-old/graph.html b/01 Projects/video-accessibility-old/graph.html new file mode 100644 index 0000000..c87cb66 --- /dev/null +++ b/01 Projects/video-accessibility-old/graph.html @@ -0,0 +1,305 @@ + + + + +graphify - /Users/ai_leed/Documents/Projects/Oliver/video-accessibility-old/graphify-out/graph.html + + + + +
+ + + + + \ No newline at end of file diff --git a/01 Projects/video-accessibility/graph.html b/01 Projects/video-accessibility/graph.html new file mode 100644 index 0000000..3991788 --- /dev/null +++ b/01 Projects/video-accessibility/graph.html @@ -0,0 +1,305 @@ + + + + +graphify - /Users/ai_leed/Documents/Projects/Oliver/video-accessibility/graphify-out/graph.html + + + + +
+ + + + + \ No newline at end of file diff --git a/01 Projects/wsj-filenaming/graph.html b/01 Projects/wsj-filenaming/graph.html new file mode 100644 index 0000000..7351546 --- /dev/null +++ b/01 Projects/wsj-filenaming/graph.html @@ -0,0 +1,305 @@ + + + + +graphify - /Users/ai_leed/Documents/Projects/Oliver/wsj-filenaming/graphify-out/graph.html + + + + +
+ + + + + \ No newline at end of file diff --git a/99 Daily/2026-05-18.md b/99 Daily/2026-05-18.md index 9d0d484..5a7c63e 100644 --- a/99 Daily/2026-05-18.md +++ b/99 Daily/2026-05-18.md @@ -27,3 +27,4 @@ tags: [daily] - 11:43 — session ended | `cc-dashboard` - 12:01 — session ended | `cc-dashboard` - 12:04 — session ended | `cc-dashboard` +- 12:08 — session ended | `cc-dashboard` diff --git a/wiki/architecture/homepage-structure.md b/wiki/architecture/homepage-structure.md index 9d41ef6..acc9b57 100644 --- a/wiki/architecture/homepage-structure.md +++ b/wiki/architecture/homepage-structure.md @@ -9,7 +9,7 @@ updated: 2026-05-18 - cluster-only mode — file stats not available ## Summary -- 20072 nodes · 26160 edges · 1480 communities (1370 shown, 110 thin omitted) +- 20072 nodes · 26160 edges · 1473 communities (1367 shown, 106 thin omitted) - Extraction: 98% EXTRACTED · 2% INFERRED · 0% AMBIGUOUS · INFERRED: 567 edges (avg confidence: 0.81) - Token cost: 0 input · 0 output @@ -1441,16 +1441,16 @@ updated: 2026-05-18 - [[_COMMUNITY_Community 1419|Community 1419]] - [[_COMMUNITY_Community 1420|Community 1420]] - [[_COMMUNITY_Community 1421|Community 1421]] -- [[_COMMUNITY_Community 1422|Community 1422]] - [[_COMMUNITY_Community 1423|Community 1423]] - [[_COMMUNITY_Community 1424|Community 1424]] - [[_COMMUNITY_Community 1425|Community 1425]] -- [[_COMMUNITY_Community 1426|Community 1426]] -- [[_COMMUNITY_Community 1427|Community 1427]] -- [[_COMMUNITY_Community 1428|Community 1428]] -- [[_COMMUNITY_Community 1430|Community 1430]] -- [[_COMMUNITY_Community 1431|Community 1431]] -- [[_COMMUNITY_Community 1432|Community 1432]] +- [[_COMMUNITY_Community 1437|Community 1437]] +- [[_COMMUNITY_Community 1438|Community 1438]] +- [[_COMMUNITY_Community 1439|Community 1439]] +- [[_COMMUNITY_Community 1440|Community 1440]] +- [[_COMMUNITY_Community 1441|Community 1441]] +- [[_COMMUNITY_Community 1442|Community 1442]] +- [[_COMMUNITY_Community 1443|Community 1443]] - [[_COMMUNITY_Community 1444|Community 1444]] - [[_COMMUNITY_Community 1445|Community 1445]] - [[_COMMUNITY_Community 1446|Community 1446]] @@ -1480,13 +1480,6 @@ updated: 2026-05-18 - [[_COMMUNITY_Community 1470|Community 1470]] - [[_COMMUNITY_Community 1471|Community 1471]] - [[_COMMUNITY_Community 1472|Community 1472]] -- [[_COMMUNITY_Community 1473|Community 1473]] -- [[_COMMUNITY_Community 1474|Community 1474]] -- [[_COMMUNITY_Community 1475|Community 1475]] -- [[_COMMUNITY_Community 1476|Community 1476]] -- [[_COMMUNITY_Community 1477|Community 1477]] -- [[_COMMUNITY_Community 1478|Community 1478]] -- [[_COMMUNITY_Community 1479|Community 1479]] ## God Nodes (most connected - your core abstractions) 1. `{ useWidgetAPI }` - 177 edges @@ -1512,24 +1505,24 @@ updated: 2026-05-18 - `Image 1` --conceptually_related_to--> `Homepage Application` [AMBIGUOUS] images/1.png → k3d/README.md -## Communities (1480 total, 110 thin omitted) +## Communities (1473 total, 106 thin omitted) ### Community 0 - "Community 0" Cohesion: 0.01 -Nodes (76): widget, widget, widget, widget, widget, widget, widget, widget (+68 more) +Nodes (78): widget, widget, widget, widget, widget, widget, widget, widget (+70 more) ### Community 1 - "Community 1" Cohesion: 0.05 -Nodes (78): backrestProxyHandler(), beszelProxyHandler(), logger, login(), calendarProxyHandler(), getServiceWidget(), crowdsecProxyHandler(), logger (+70 more) +Nodes (74): backrestProxyHandler(), beszelProxyHandler(), logger, login(), calendarProxyHandler(), getServiceWidget(), crowdsecProxyHandler(), logger (+66 more) ### Community 2 - "Community 2" -Cohesion: 0.05 -Nodes (34): Greeting(), { container }, textSizes, getCurrentPosition, query, { useSWR }, Finnhub API Provider, Stocks Service Widget (referenced from info) (+26 more) - -### Community 3 - "Community 3" Cohesion: 0.04 Nodes (33): Container(), { container }, { rerender }, { container }, service, { useWidgetAPI }, Component(), statusMap (+25 more) +### Community 3 - "Community 3" +Cohesion: 0.06 +Nodes (32): Greeting(), { container }, textSizes, getCurrentPosition, query, { useSWR }, Finnhub API Provider, Stocks Service Widget (referenced from info) (+24 more) + ### Community 4 - "Community 4" Cohesion: 0.04 Nodes (57): wmo, 0-day, 0-night, 1-day, 1-night, 2-day, 2-night, 3-day (+49 more) @@ -1711,49 +1704,49 @@ Cohesion: 0.04 Nodes (57): wmo, 0-day, 0-night, 1-day, 1-night, 2-day, 2-night, 3-day (+49 more) ### Community 49 - "Community 49" +Cohesion: 0.06 +Nodes (35): checkCRD(), getKubeConfig(), getKubernetes(), { fs, yaml, config, checkAndCopyConfig, kube, apiExt }, kc1, kc2, logger, kubernetes (+27 more) + +### Community 50 - "Community 50" +Cohesion: 0.04 +Nodes (33): { httpProxy, getServiceWidget, logger }, req, res, logger, req, res, widget, Component() (+25 more) + +### Community 51 - "Community 51" Cohesion: 0.05 Nodes (22): data, { Resource }, { useSWR, Resource, Error }, convertToFahrenheit(), CpuTemp(), { useSWR, Resource, Error }, { useSWR, Resource, Error }, { useSWR, Resource, Error } (+14 more) -### Community 50 - "Community 50" +### Community 52 - "Community 52" Cohesion: 0.05 Nodes (32): Component(), { useWidgetAPI }, Integration(), Integration(), next, setEvents, { useWidgetAPI }, Integration() (+24 more) -### Community 51 - "Community 51" +### Community 53 - "Community 53" Cohesion: 0.07 Nodes (33): handler(), logger, handler(), bookmarksResponse(), ensureParentGroupExists(), mergeLayoutGroupsIntoConfigured(), pruneEmptyGroups(), servicesResponse() (+25 more) -### Community 52 - "Community 52" +### Community 54 - "Community 54" Cohesion: 0.06 Nodes (36): handler(), logger, createUnifiProxyHandler(), isSuccessfulLoginResponse(), login(), getWidget(), logger, poll() (+28 more) -### Community 53 - "Community 53" -Cohesion: 0.06 -Nodes (29): checkCRD(), getKubeConfig(), getKubernetes(), { fs, yaml, config, checkAndCopyConfig, kube, apiExt }, kc1, kc2, logger, kubernetes (+21 more) - -### Community 54 - "Community 54" +### Community 55 - "Community 55" Cohesion: 0.06 Nodes (45): common, bbits, bbytes, bibitrate, bibyterate, bits, byterate, bytes (+37 more) -### Community 55 - "Community 55" +### Community 56 - "Community 56" Cohesion: 0.06 Nodes (45): APC UPS Widget, Autobrr Widget, Azure DevOps Widget, Checkmk Widget, Component Authoring Guide, Basic Authentication (username/password), Widget Versioning, Synology Disk Station Widget (+37 more) -### Community 56 - "Community 56" +### Community 57 - "Community 57" Cohesion: 0.05 Nodes (45): authentik, failedLoginsLast24H, loginsLast24H, cpu, mem, glances, crit, free (+37 more) -### Community 57 - "Community 57" +### Community 58 - "Community 58" Cohesion: 0.05 Nodes (32): handler(), MOBILE_BUTTON_POSITIONS, QuickLaunch(), backdrop, button0, button1, fetchSpy, input (+24 more) -### Community 58 - "Community 58" +### Community 59 - "Community 59" Cohesion: 0.08 Nodes (41): autobrr, bazarr, missingEpisodes, missingMovies, deluge, develancacheui, cachehitbytes, cachemissbytes (+33 more) -### Community 59 - "Community 59" -Cohesion: 0.07 -Nodes (41): unknown, emby, bitrate, episodes, movies, no_active, playing, series (+33 more) - ### Community 60 - "Community 60" Cohesion: 0.07 Nodes (41): unknown, emby, bitrate, episodes, movies, no_active, playing, series (+33 more) @@ -1855,13 +1848,13 @@ Cohesion: 0.07 Nodes (41): unknown, emby, bitrate, episodes, movies, no_active, playing, series (+33 more) ### Community 85 - "Community 85" -Cohesion: 0.06 -Nodes (41): authentik, failedLoginsLast24H, loginsLast24H, hours, cpu, mem, glances, crit (+33 more) - -### Community 86 - "Community 86" Cohesion: 0.07 Nodes (41): unknown, emby, bitrate, episodes, movies, no_active, playing, series (+33 more) +### Community 86 - "Community 86" +Cohesion: 0.06 +Nodes (41): authentik, failedLoginsLast24H, loginsLast24H, hours, cpu, mem, glances, crit (+33 more) + ### Community 87 - "Community 87" Cohesion: 0.07 Nodes (41): unknown, emby, bitrate, episodes, movies, no_active, playing, series (+33 more) @@ -1907,12 +1900,12 @@ Cohesion: 0.07 Nodes (41): unknown, emby, bitrate, episodes, movies, no_active, playing, series (+33 more) ### Community 98 - "Community 98" -Cohesion: 0.08 -Nodes (38): bazarr, missingEpisodes, missingMovies, changedetectionio, diffsDetected, totalObserved, deluge, develancacheui (+30 more) +Cohesion: 0.07 +Nodes (41): unknown, emby, bitrate, episodes, movies, no_active, playing, series (+33 more) ### Community 99 - "Community 99" -Cohesion: 0.07 -Nodes (38): authentik, failedLoginsLast24H, loginsLast24H, cpu, mem, glances, crit, free (+30 more) +Cohesion: 0.08 +Nodes (38): bazarr, missingEpisodes, missingMovies, changedetectionio, diffsDetected, totalObserved, deluge, develancacheui (+30 more) ### Community 100 - "Community 100" Cohesion: 0.07 @@ -2020,11 +2013,11 @@ Nodes (38): authentik, failedLoginsLast24H, loginsLast24H, cpu, mem, glances, cr ### Community 126 - "Community 126" Cohesion: 0.07 -Nodes (36): diskstation, volumeAvailable, cpu, mem, glances, crit, free, gpu (+28 more) +Nodes (38): authentik, failedLoginsLast24H, loginsLast24H, cpu, mem, glances, crit, free (+30 more) ### Community 127 - "Community 127" -Cohesion: 0.06 -Nodes (22): { httpProxy, getServiceWidget, logger }, req, res, logger, req, res, widget, json (+14 more) +Cohesion: 0.07 +Nodes (36): diskstation, volumeAvailable, cpu, mem, glances, crit, free, gpu (+28 more) ### Community 128 - "Community 128" Cohesion: 0.09 @@ -2035,17 +2028,17 @@ Cohesion: 0.07 Nodes (32): handler(), logger, { container }, { useSWR }, healthchecks, grace, last_ping, new (+24 more) ### Community 130 - "Community 130" -Cohesion: 0.09 -Nodes (33): autobrr, bazarr, missingEpisodes, missingMovies, changedetectionio, diffsDetected, totalObserved, deluge (+25 more) +Cohesion: 0.08 +Nodes (35): Homepage Bookmarks Config, CLAUDE.md Guidance, Vitest Test Framework, Widget Plugin System, Contributor Covenant Code of Conduct, Codecov Configuration, Contributing Guide, Docker Compose Configuration (+27 more) ### Community 131 - "Community 131" -Cohesion: 0.08 -Nodes (23): API Authoring Guide, Proxy Handler, jsonrpcProxyHandler(), logger, sendJsonRpcRequest(), widget, logger, login() (+15 more) - -### Community 132 - "Community 132" Cohesion: 0.09 Nodes (33): autobrr, bazarr, missingEpisodes, missingMovies, changedetectionio, diffsDetected, totalObserved, deluge (+25 more) +### Community 132 - "Community 132" +Cohesion: 0.08 +Nodes (23): API Authoring Guide, Proxy Handler, jsonrpcProxyHandler(), logger, sendJsonRpcRequest(), widget, logger, login() (+15 more) + ### Community 133 - "Community 133" Cohesion: 0.09 Nodes (33): autobrr, bazarr, missingEpisodes, missingMovies, changedetectionio, diffsDetected, totalObserved, deluge (+25 more) @@ -2160,35 +2153,35 @@ Nodes (33): autobrr, bazarr, missingEpisodes, missingMovies, changedetectionio, ### Community 161 - "Community 161" Cohesion: 0.09 -Nodes (33): Helm Deployment, Homepage Application, Kubernetes Ingress, k3d Kubernetes Cluster, k3d Local Registry, Tilt CI Loop, YAML Configuration, Configuration Index (+25 more) +Nodes (33): autobrr, bazarr, missingEpisodes, missingMovies, changedetectionio, diffsDetected, totalObserved, deluge (+25 more) ### Community 162 - "Community 162" +Cohesion: 0.09 +Nodes (33): autobrr, bazarr, missingEpisodes, missingMovies, changedetectionio, diffsDetected, totalObserved, deluge (+25 more) + +### Community 163 - "Community 163" +Cohesion: 0.09 +Nodes (33): autobrr, bazarr, missingEpisodes, missingMovies, changedetectionio, diffsDetected, totalObserved, deluge (+25 more) + +### Community 164 - "Community 164" +Cohesion: 0.09 +Nodes (33): autobrr, bazarr, missingEpisodes, missingMovies, changedetectionio, diffsDetected, totalObserved, deluge (+25 more) + +### Community 165 - "Community 165" +Cohesion: 0.09 +Nodes (33): Helm Deployment, Homepage Application, Kubernetes Ingress, k3d Kubernetes Cluster, k3d Local Registry, Tilt CI Loop, YAML Configuration, Configuration Index (+25 more) + +### Community 166 - "Community 166" Cohesion: 0.06 Nodes (19): Component(), { container }, service, { useWidgetAPI }, Component(), { container }, service, { useWidgetAPI } (+11 more) -### Community 163 - "Community 163" +### Community 167 - "Community 167" Cohesion: 0.11 Nodes (30): bazarr, missingEpisodes, missingMovies, changedetectionio, diffsDetected, totalObserved, common, bibitrate (+22 more) -### Community 164 - "Community 164" -Cohesion: 0.08 -Nodes (31): healthchecks, grace, last_ping, new, paused, homebridge, available_update, child_bridges (+23 more) - -### Community 165 - "Community 165" -Cohesion: 0.08 -Nodes (31): authentik, failedLoginsLast24H, loginsLast24H, healthchecks, grace, last_ping, new, paused (+23 more) - -### Community 166 - "Community 166" -Cohesion: 0.08 -Nodes (31): authentik, failedLoginsLast24H, loginsLast24H, healthchecks, grace, last_ping, new, paused (+23 more) - -### Community 167 - "Community 167" -Cohesion: 0.08 -Nodes (29): Date & Time Info Widget, convertToFahrenheit(), cpuSensorLabels, Glances Service Widget (referenced from info), sensor, { useSWR }, Widget(), Greeting Info Widget (+21 more) - ### Community 168 - "Community 168" Cohesion: 0.08 -Nodes (31): authentik, failedLoginsLast24H, loginsLast24H, healthchecks, grace, last_ping, new, paused (+23 more) +Nodes (31): healthchecks, grace, last_ping, new, paused, homebridge, available_update, child_bridges (+23 more) ### Community 169 - "Community 169" Cohesion: 0.08 @@ -2223,25 +2216,25 @@ Cohesion: 0.08 Nodes (31): authentik, failedLoginsLast24H, loginsLast24H, healthchecks, grace, last_ping, new, paused (+23 more) ### Community 177 - "Community 177" -Cohesion: 0.11 -Nodes (29): autobrr, bazarr, missingEpisodes, missingMovies, changedetectionio, diffsDetected, totalObserved, deluge (+21 more) +Cohesion: 0.08 +Nodes (31): authentik, failedLoginsLast24H, loginsLast24H, healthchecks, grace, last_ping, new, paused (+23 more) ### Community 178 - "Community 178" -Cohesion: 0.11 -Nodes (29): autobrr, bazarr, missingEpisodes, missingMovies, changedetectionio, diffsDetected, totalObserved, deluge (+21 more) +Cohesion: 0.08 +Nodes (31): authentik, failedLoginsLast24H, loginsLast24H, healthchecks, grace, last_ping, new, paused (+23 more) ### Community 179 - "Community 179" -Cohesion: 0.11 -Nodes (29): autobrr, bazarr, missingEpisodes, missingMovies, changedetectionio, diffsDetected, totalObserved, deluge (+21 more) +Cohesion: 0.08 +Nodes (31): authentik, failedLoginsLast24H, loginsLast24H, healthchecks, grace, last_ping, new, paused (+23 more) ### Community 180 - "Community 180" -Cohesion: 0.07 -Nodes (30): dependencies, compare-versions, dockerode, follow-redirects, gamedig, @headlessui/react, i18next, ical.js (+22 more) - -### Community 181 - "Community 181" Cohesion: 0.11 Nodes (29): autobrr, bazarr, missingEpisodes, missingMovies, changedetectionio, diffsDetected, totalObserved, deluge (+21 more) +### Community 181 - "Community 181" +Cohesion: 0.07 +Nodes (30): dependencies, compare-versions, dockerode, follow-redirects, gamedig, @headlessui/react, i18next, ical.js (+22 more) + ### Community 182 - "Community 182" Cohesion: 0.11 Nodes (29): autobrr, bazarr, missingEpisodes, missingMovies, changedetectionio, diffsDetected, totalObserved, deluge (+21 more) @@ -2267,8 +2260,8 @@ Cohesion: 0.09 Nodes (28): unknown, jackett, configured, lidarr, artists, medusa, nzbget, downloaded (+20 more) ### Community 188 - "Community 188" -Cohesion: 0.10 -Nodes (28): Homepage Bookmarks Config, CLAUDE.md Guidance, Vitest Test Framework, Widget Plugin System, Contributor Covenant Code of Conduct, Codecov Configuration, Contributing Guide, Docker Compose Configuration (+20 more) +Cohesion: 0.08 +Nodes (27): docker, exited, healthy, not_found, offline, partial, running, rx (+19 more) ### Community 189 - "Community 189" Cohesion: 0.08 @@ -2436,7 +2429,7 @@ Nodes (27): docker, exited, healthy, not_found, offline, partial, running, rx (+ ### Community 230 - "Community 230" Cohesion: 0.08 -Nodes (27): docker, exited, healthy, not_found, offline, partial, running, rx (+19 more) +Nodes (26): common, bbits, bbytes, bibitrate, bibyterate, bits, byterate, bytes (+18 more) ### Community 231 - "Community 231" Cohesion: 0.08 @@ -2459,13 +2452,13 @@ Cohesion: 0.08 Nodes (26): common, bbits, bbytes, bibitrate, bibyterate, bits, byterate, bytes (+18 more) ### Community 236 - "Community 236" -Cohesion: 0.08 -Nodes (26): common, bbits, bbytes, bibitrate, bibyterate, bits, byterate, bytes (+18 more) - -### Community 237 - "Community 237" Cohesion: 0.14 Nodes (25): autobrr, bazarr, missingEpisodes, missingMovies, changedetectionio, diffsDetected, totalObserved, deluge (+17 more) +### Community 237 - "Community 237" +Cohesion: 0.08 +Nodes (26): common, bbits, bbytes, bibitrate, bibyterate, bits, byterate, bytes (+18 more) + ### Community 238 - "Community 238" Cohesion: 0.08 Nodes (26): common, bbits, bbytes, bibitrate, bibyterate, bits, byterate, bytes (+18 more) @@ -2563,25 +2556,25 @@ Cohesion: 0.08 Nodes (26): common, bbits, bbytes, bibitrate, bibyterate, bits, byterate, bytes (+18 more) ### Community 262 - "Community 262" -Cohesion: 0.08 -Nodes (26): common, bbits, bbytes, bibitrate, bibyterate, bits, byterate, bytes (+18 more) - -### Community 263 - "Community 263" Cohesion: 0.14 Nodes (25): autobrr, bazarr, missingEpisodes, missingMovies, changedetectionio, diffsDetected, totalObserved, deluge (+17 more) +### Community 263 - "Community 263" +Cohesion: 0.08 +Nodes (26): common, bbits, bbytes, bibitrate, bibyterate, bits, byterate, bytes (+18 more) + ### Community 264 - "Community 264" Cohesion: 0.08 Nodes (26): common, bbits, bbytes, bibitrate, bibyterate, bits, byterate, bytes (+18 more) ### Community 265 - "Community 265" -Cohesion: 0.08 -Nodes (26): common, bbits, bbytes, bibitrate, bibyterate, bits, byterate, bytes (+18 more) - -### Community 266 - "Community 266" Cohesion: 0.14 Nodes (25): autobrr, bazarr, missingEpisodes, missingMovies, changedetectionio, diffsDetected, totalObserved, deluge (+17 more) +### Community 266 - "Community 266" +Cohesion: 0.08 +Nodes (26): common, bbits, bbytes, bibitrate, bibyterate, bits, byterate, bytes (+18 more) + ### Community 267 - "Community 267" Cohesion: 0.08 Nodes (26): common, bbits, bbytes, bibitrate, bibyterate, bits, byterate, bytes (+18 more) @@ -2615,8 +2608,8 @@ Cohesion: 0.08 Nodes (26): common, bbits, bbytes, bibitrate, bibyterate, bits, byterate, bytes (+18 more) ### Community 275 - "Community 275" -Cohesion: 0.08 -Nodes (26): common, bbits, bbytes, bibitrate, bibyterate, bits, byterate, bytes (+18 more) +Cohesion: 0.10 +Nodes (25): healthchecks, grace, last_ping, new, paused, homebridge, available_update, child_bridges (+17 more) ### Community 276 - "Community 276" Cohesion: 0.10 @@ -2744,7 +2737,7 @@ Nodes (24): unknown, movies, series, lidarr, artists, medusa, nzbget, downloaded ### Community 307 - "Community 307" Cohesion: 0.11 -Nodes (24): hours, cpu, mem, glances, crit, free, gpu, load (+16 more) +Nodes (24): cpu, mem, glances, crit, free, gpu, load, swap (+16 more) ### Community 308 - "Community 308" Cohesion: 0.11 @@ -2752,23 +2745,23 @@ Nodes (24): hours, cpu, mem, glances, crit, free, gpu, load (+16 more) ### Community 309 - "Community 309" Cohesion: 0.11 -Nodes (24): unknown, movies, series, lidarr, artists, medusa, nzbget, downloaded (+16 more) +Nodes (24): unknown, jackett, configured, lidarr, artists, medusa, nzbget, downloaded (+16 more) ### Community 310 - "Community 310" Cohesion: 0.11 -Nodes (24): unknown, jackett, configured, lidarr, artists, medusa, nzbget, downloaded (+16 more) +Nodes (24): unknown, movies, series, lidarr, artists, medusa, nzbget, downloaded (+16 more) ### Community 311 - "Community 311" -Cohesion: 0.11 -Nodes (24): unknown, movies, series, lidarr, artists, medusa, nzbget, downloaded (+16 more) +Cohesion: 0.10 +Nodes (22): Date & Time Info Widget, convertToFahrenheit(), cpuSensorLabels, Glances Service Widget (referenced from info), sensor, { useSWR }, Widget(), Greeting Info Widget (+14 more) ### Community 312 - "Community 312" Cohesion: 0.08 -Nodes (17): { getServiceItem, ping, logger }, req, res, Item(), appBtn, baseService, btn, links (+9 more) +Nodes (11): drawImage, getContextSpy, img, link, toDataURLSpy, { container }, data, { container } (+3 more) ### Community 313 - "Community 313" -Cohesion: 0.08 -Nodes (11): drawImage, getContextSpy, img, link, toDataURLSpy, { container }, data, { container } (+3 more) +Cohesion: 0.11 +Nodes (24): hours, cpu, mem, glances, crit, free, gpu, load (+16 more) ### Community 314 - "Community 314" Cohesion: 0.11 @@ -2780,7 +2773,7 @@ Nodes (24): hours, cpu, mem, glances, crit, free, gpu, load (+16 more) ### Community 316 - "Community 316" Cohesion: 0.11 -Nodes (24): hours, cpu, mem, glances, crit, free, gpu, load (+16 more) +Nodes (24): cpu, mem, glances, crit, free, gpu, load, swap (+16 more) ### Community 317 - "Community 317" Cohesion: 0.11 @@ -2788,7 +2781,7 @@ Nodes (24): hours, cpu, mem, glances, crit, free, gpu, load (+16 more) ### Community 318 - "Community 318" Cohesion: 0.11 -Nodes (24): cpu, mem, glances, crit, free, gpu, load, swap (+16 more) +Nodes (24): hours, cpu, mem, glances, crit, free, gpu, load (+16 more) ### Community 319 - "Community 319" Cohesion: 0.11 @@ -2803,33 +2796,33 @@ Cohesion: 0.11 Nodes (24): hours, cpu, mem, glances, crit, free, gpu, load (+16 more) ### Community 322 - "Community 322" -Cohesion: 0.11 -Nodes (24): cpu, mem, glances, crit, free, gpu, load, swap (+16 more) - -### Community 323 - "Community 323" Cohesion: 0.09 Nodes (23): devDependencies, eslint, @eslint/compat, eslint-config-next, eslint-config-prettier, @eslint/eslintrc, @eslint/js, eslint-plugin-import (+15 more) -### Community 324 - "Community 324" -Cohesion: 0.11 -Nodes (23): healthchecks, grace, last_ping, new, paused, minecraft, players, ping (+15 more) - -### Community 325 - "Community 325" +### Community 323 - "Community 323" Cohesion: 0.12 -Nodes (23): unknown, series, komga, books, libraries, lidarr, artists, medusa (+15 more) +Nodes (23): unknown, series, komga, books, libraries, kopia, failed, lastrun (+15 more) -### Community 326 - "Community 326" +### Community 324 - "Community 324" Cohesion: 0.10 Nodes (23): cloudflared, origin_ip, healthchecks, grace, last_ping, never, new, paused (+15 more) -### Community 327 - "Community 327" +### Community 325 - "Community 325" +Cohesion: 0.11 +Nodes (23): unknown, series, jackett, configured, lidarr, artists, medusa, radarr (+15 more) + +### Community 326 - "Community 326" Cohesion: 0.10 Nodes (9): apcupsProxyHandler(), getStatus(), logger, statusAsJSON(), encodeLine(), FakeSocket, req, res (+1 more) -### Community 328 - "Community 328" +### Community 327 - "Community 327" Cohesion: 0.09 Nodes (11): Component(), items, { useWidgetAPI }, Component(), items, { useWidgetAPI }, Component(), items (+3 more) +### Community 328 - "Community 328" +Cohesion: 0.11 +Nodes (22): fileflows, jackett, configured, jellyseerr, nzbget, downloaded, rate, remaining (+14 more) + ### Community 329 - "Community 329" Cohesion: 0.09 Nodes (22): docker, exited, healthy, not_found, offline, partial, running, rx (+14 more) @@ -2843,101 +2836,101 @@ Cohesion: 0.12 Nodes (12): data, { useWidgetAPI }, Component(), { container }, { useWidgetAPI }, Block(), { container }, el (+4 more) ### Community 332 - "Community 332" -Cohesion: 0.12 -Nodes (16): { container }, nodes, { useSWR }, combineMessageAndSplat(), createLogger(), getConsoleLogger(), getFileLogger(), init() (+8 more) +Cohesion: 0.10 +Nodes (21): authentik, failedLoginsLast24H, loginsLast24H, movies, hdhomerun, channels, hd, immich (+13 more) ### Community 333 - "Community 333" -Cohesion: 0.12 -Nodes (9): List(), { container }, { Item }, ul, columnMap, ServicesGroup(), DisclosurePanel, lists (+1 more) +Cohesion: 0.11 +Nodes (19): authentik, failedLoginsLast24H, loginsLast24H, unifi, devices, empty_data, lan, lan_devices (+11 more) ### Community 334 - "Community 334" Cohesion: 0.11 -Nodes (19): authentik, failedLoginsLast24H, loginsLast24H, unifi, devices, empty_data, lan, lan_devices (+11 more) - -### Community 335 - "Community 335" -Cohesion: 0.11 Nodes (19): diskstation, volumeAvailable, mikrotik, cpuLoad, memoryUsed, numberOfLeases, nextcloud, activeusers (+11 more) -### Community 336 - "Community 336" +### Community 335 - "Community 335" Cohesion: 0.18 Nodes (19): emby, bitrate, episodes, movies, no_active, playing, series, songs (+11 more) -### Community 337 - "Community 337" +### Community 336 - "Community 336" Cohesion: 0.12 Nodes (19): fileflows, processed, jellyseerr, overseerr, approved, available, pending, processing (+11 more) -### Community 338 - "Community 338" +### Community 337 - "Community 337" Cohesion: 0.15 Nodes (19): hours, cpu, mem, glances, crit, free, gpu, load (+11 more) +### Community 338 - "Community 338" +Cohesion: 0.11 +Nodes (19): authentik, failedLoginsLast24H, loginsLast24H, unifi, devices, empty_data, lan, lan_devices (+11 more) + ### Community 339 - "Community 339" Cohesion: 0.11 -Nodes (19): authentik, failedLoginsLast24H, loginsLast24H, unifi, devices, empty_data, lan, lan_devices (+11 more) - -### Community 340 - "Community 340" -Cohesion: 0.11 Nodes (19): docker, exited, healthy, not_found, offline, partial, running, rx (+11 more) -### Community 341 - "Community 341" +### Community 340 - "Community 340" Cohesion: 0.18 Nodes (19): emby, bitrate, episodes, movies, no_active, playing, series, songs (+11 more) -### Community 342 - "Community 342" +### Community 341 - "Community 341" Cohesion: 0.15 Nodes (19): hours, cpu, mem, glances, crit, free, gpu, load (+11 more) -### Community 343 - "Community 343" +### Community 342 - "Community 342" Cohesion: 0.11 Nodes (19): authentik, failedLoginsLast24H, loginsLast24H, unifi, devices, empty_data, lan, lan_devices (+11 more) +### Community 343 - "Community 343" +Cohesion: 0.13 +Nodes (8): List(), { container }, { Item }, ul, columnMap, DisclosurePanel, lists, items + ### Community 344 - "Community 344" Cohesion: 0.12 Nodes (9): authenticate(), logger, sendMethod(), FakeWebSocket, { getServiceWidget, validateWidgetData, logger }, req, res, waitForEvent() (+1 more) ### Community 345 - "Community 345" +Cohesion: 0.18 +Nodes (18): emby, bitrate, episodes, movies, no_active, playing, songs, transcoding (+10 more) + +### Community 346 - "Community 346" +Cohesion: 0.11 +Nodes (12): Item(), Agenda(), Event(), Day(), Monthly(), Component(), { useWidgetAPI }, classnames (+4 more) + +### Community 347 - "Community 347" +Cohesion: 0.11 +Nodes (12): { getServiceItem, ping, logger }, req, res, Item(), KubernetesStatus(), { container }, { useSWR }, { container } (+4 more) + +### Community 348 - "Community 348" Cohesion: 0.16 Nodes (15): buildHighlightConfig(), DEFAULT_LEVEL_CLASSES, ensureArray(), evaluateHighlight(), evaluateNumericRule(), evaluateStringRule(), extractNumericToken(), findHighlightLevel() (+7 more) -### Community 346 - "Community 346" -Cohesion: 0.14 -Nodes (11): Component(), fritzboxDefaultFields, { container }, service, { useWidgetAPI }, fritzboxProxyHandler(), logger, requestEndpoint() (+3 more) - -### Community 347 - "Community 347" +### Community 349 - "Community 349" Cohesion: 0.18 Nodes (17): emby, bitrate, episodes, no_active, playing, songs, transcoding, jellyfin (+9 more) -### Community 348 - "Community 348" +### Community 350 - "Community 350" Cohesion: 0.18 Nodes (17): Bookmarks Configuration, Automatic Service Discovery, Docker Integration, Info Widgets, Kubernetes Integration, Docker Installation, Docker Configuration, Information Widgets Configuration (+9 more) -### Community 349 - "Community 349" -Cohesion: 0.12 -Nodes (17): authentik, failedLoginsLast24H, loginsLast24H, hdhomerun, channels, hd, immich, photos (+9 more) - -### Community 350 - "Community 350" +### Community 351 - "Community 351" Cohesion: 0.12 Nodes (17): nextdns, no_devices, unifi, devices, empty_data, lan, lan_devices, lan_users (+9 more) -### Community 351 - "Community 351" -Cohesion: 0.18 -Nodes (17): emby, bitrate, episodes, no_active, playing, songs, transcoding, jellyfin (+9 more) - ### Community 352 - "Community 352" Cohesion: 0.18 Nodes (17): emby, bitrate, episodes, no_active, playing, songs, transcoding, jellyfin (+9 more) ### Community 353 - "Community 353" -Cohesion: 0.12 -Nodes (10): Item(), Day(), dayInWeekId, Monthly(), Component(), { useWidgetAPI }, classnames, List() (+2 more) - -### Community 354 - "Community 354" Cohesion: 0.13 Nodes (13): Fixture(), useWindowFocus(), ColorToggle, getAllServices(), headerStyles, Home(), Index(), LANGUAGE_ALIASES (+5 more) -### Community 355 - "Community 355" +### Community 354 - "Community 354" Cohesion: 0.12 Nodes (16): fritzbox, connectionStatus, connectionStatusAuthenticating, connectionStatusConnected, connectionStatusConnecting, connectionStatusDisconnected, connectionStatusDisconnecting, connectionStatusPendingDisconnect (+8 more) +### Community 355 - "Community 355" +Cohesion: 0.14 +Nodes (10): apiCall(), KavitaProxyHandler(), logger, login(), { httpProxy, getServiceWidget, cache, logger }, loginCalls, req, res (+2 more) + ### Community 356 - "Community 356" Cohesion: 0.12 Nodes (16): fritzbox, connectionStatus, connectionStatusAuthenticating, connectionStatusConnected, connectionStatusConnecting, connectionStatusDisconnected, connectionStatusDisconnecting, connectionStatusPendingDisconnect (+8 more) @@ -2963,8 +2956,8 @@ Cohesion: 0.12 Nodes (16): fritzbox, connectionStatus, connectionStatusAuthenticating, connectionStatusConnected, connectionStatusConnecting, connectionStatusDisconnected, connectionStatusDisconnecting, connectionStatusPendingDisconnect (+8 more) ### Community 362 - "Community 362" -Cohesion: 0.14 -Nodes (16): homebridge, available_update, child_bridges, child_bridges_status, ok, up_to_date, update_available, updates (+8 more) +Cohesion: 0.12 +Nodes (16): fritzbox, connectionStatus, connectionStatusAuthenticating, connectionStatusConnected, connectionStatusConnecting, connectionStatusDisconnected, connectionStatusDisconnecting, connectionStatusPendingDisconnect (+8 more) ### Community 363 - "Community 363" Cohesion: 0.12 @@ -3028,11 +3021,11 @@ Nodes (16): fritzbox, connectionStatus, connectionStatusAuthenticating, connecti ### Community 378 - "Community 378" Cohesion: 0.12 -Nodes (16): fritzbox, connectionStatus, connectionStatusAuthenticating, connectionStatusConnected, connectionStatusConnecting, connectionStatusDisconnected, connectionStatusDisconnecting, connectionStatusPendingDisconnect (+8 more) +Nodes (8): Chart, ChartDual, areas, chart, area, kept, { container }, ChartDual ### Community 379 - "Community 379" Cohesion: 0.12 -Nodes (8): Chart, ChartDual, areas, chart, area, kept, { container }, ChartDual +Nodes (16): fritzbox, connectionStatus, connectionStatusAuthenticating, connectionStatusConnected, connectionStatusConnecting, connectionStatusDisconnected, connectionStatusDisconnecting, connectionStatusPendingDisconnect (+8 more) ### Community 380 - "Community 380" Cohesion: 0.12 @@ -3059,21 +3052,21 @@ Cohesion: 0.12 Nodes (16): fritzbox, connectionStatus, connectionStatusAuthenticating, connectionStatusConnected, connectionStatusConnecting, connectionStatusDisconnected, connectionStatusDisconnecting, connectionStatusPendingDisconnect (+8 more) ### Community 386 - "Community 386" -Cohesion: 0.12 -Nodes (16): fritzbox, connectionStatus, connectionStatusAuthenticating, connectionStatusConnected, connectionStatusConnecting, connectionStatusDisconnected, connectionStatusDisconnecting, connectionStatusPendingDisconnect (+8 more) +Cohesion: 0.14 +Nodes (16): homebridge, available_update, child_bridges, child_bridges_status, ok, up_to_date, update_available, updates (+8 more) ### Community 387 - "Community 387" -Cohesion: 0.14 -Nodes (16): homebridge, available_update, child_bridges, child_bridges_status, ok, up_to_date, update_available, updates (+8 more) - -### Community 388 - "Community 388" Cohesion: 0.12 Nodes (16): fritzbox, connectionStatus, connectionStatusAuthenticating, connectionStatusConnected, connectionStatusConnecting, connectionStatusDisconnected, connectionStatusDisconnecting, connectionStatusPendingDisconnect (+8 more) -### Community 389 - "Community 389" +### Community 388 - "Community 388" Cohesion: 0.14 Nodes (16): homebridge, available_update, child_bridges, child_bridges_status, ok, up_to_date, update_available, updates (+8 more) +### Community 389 - "Community 389" +Cohesion: 0.12 +Nodes (16): fritzbox, connectionStatus, connectionStatusAuthenticating, connectionStatusConnected, connectionStatusConnecting, connectionStatusDisconnected, connectionStatusDisconnecting, connectionStatusPendingDisconnect (+8 more) + ### Community 390 - "Community 390" Cohesion: 0.12 Nodes (16): fritzbox, connectionStatus, connectionStatusAuthenticating, connectionStatusConnected, connectionStatusConnecting, connectionStatusDisconnected, connectionStatusDisconnecting, connectionStatusPendingDisconnect (+8 more) @@ -3084,7 +3077,7 @@ Nodes (16): fritzbox, connectionStatus, connectionStatusAuthenticating, connecti ### Community 392 - "Community 392" Cohesion: 0.14 -Nodes (12): Agenda(), { container }, events, { EventStub, compareDateTimezoneStub }, renderedEvents, service, showDate, compareDateTimezone() (+4 more) +Nodes (16): homebridge, available_update, child_bridges, child_bridges_status, ok, up_to_date, update_available, updates (+8 more) ### Community 393 - "Community 393" Cohesion: 0.12 @@ -3151,12 +3144,12 @@ Cohesion: 0.14 Nodes (16): homebridge, available_update, child_bridges, child_bridges_status, ok, up_to_date, update_available, updates (+8 more) ### Community 409 - "Community 409" -Cohesion: 0.12 -Nodes (16): fritzbox, connectionStatus, connectionStatusAuthenticating, connectionStatusConnected, connectionStatusConnecting, connectionStatusDisconnected, connectionStatusDisconnecting, connectionStatusPendingDisconnect (+8 more) +Cohesion: 0.13 +Nodes (15): quicklaunch, bookmark, custom, searchsuggestion, service, visit, search, placeholder (+7 more) ### Community 410 - "Community 410" -Cohesion: 0.14 -Nodes (16): homebridge, available_update, child_bridges, child_bridges_status, ok, up_to_date, update_available, updates (+8 more) +Cohesion: 0.13 +Nodes (10): basicAuthHeader(), logger, cases, { getSettings }, { httpProxy }, [, params], req, res (+2 more) ### Community 411 - "Community 411" Cohesion: 0.13 @@ -3164,23 +3157,23 @@ Nodes (15): quicklaunch, bookmark, custom, searchsuggestion, service, visit, sea ### Community 412 - "Community 412" Cohesion: 0.13 -Nodes (10): basicAuthHeader(), logger, cases, { getSettings }, { httpProxy }, [, params], req, res (+2 more) +Nodes (15): quicklaunch, bookmark, custom, searchsuggestion, service, visit, search, placeholder (+7 more) ### Community 413 - "Community 413" Cohesion: 0.13 Nodes (15): quicklaunch, bookmark, custom, searchsuggestion, service, visit, search, placeholder (+7 more) ### Community 414 - "Community 414" -Cohesion: 0.13 -Nodes (15): quicklaunch, bookmark, custom, searchsuggestion, service, visit, search, placeholder (+7 more) +Cohesion: 0.14 +Nodes (8): { i18n }, BIBIT_UNITS, BIT_UNITS, BYTE_UNITS, formatted, prettyBytes(), toLocaleString(), tailwindSafelist ### Community 415 - "Community 415" Cohesion: 0.13 Nodes (15): quicklaunch, bookmark, custom, searchsuggestion, service, visit, search, placeholder (+7 more) ### Community 416 - "Community 416" -Cohesion: 0.14 -Nodes (8): { i18n }, BIBIT_UNITS, BIT_UNITS, BYTE_UNITS, formatted, prettyBytes(), toLocaleString(), tailwindSafelist +Cohesion: 0.13 +Nodes (15): quicklaunch, bookmark, custom, searchsuggestion, service, visit, search, placeholder (+7 more) ### Community 417 - "Community 417" Cohesion: 0.13 @@ -3188,11 +3181,11 @@ Nodes (15): quicklaunch, bookmark, custom, searchsuggestion, service, visit, sea ### Community 418 - "Community 418" Cohesion: 0.13 -Nodes (15): quicklaunch, bookmark, custom, searchsuggestion, service, visit, search, placeholder (+7 more) +Nodes (14): VARIANT, build, args, dockerfile, customizations, vscode, forwardPorts, name (+6 more) ### Community 419 - "Community 419" Cohesion: 0.13 -Nodes (14): VARIANT, build, args, dockerfile, customizations, vscode, forwardPorts, name (+6 more) +Nodes (15): quicklaunch, bookmark, custom, searchsuggestion, service, visit, search, placeholder (+7 more) ### Community 420 - "Community 420" Cohesion: 0.13 @@ -3263,8 +3256,8 @@ Cohesion: 0.13 Nodes (15): quicklaunch, bookmark, custom, searchsuggestion, service, visit, search, placeholder (+7 more) ### Community 437 - "Community 437" -Cohesion: 0.17 -Nodes (15): fileflows, jackett, configured, jellyseerr, ombi, approved, available, pending (+7 more) +Cohesion: 0.13 +Nodes (15): quicklaunch, bookmark, custom, searchsuggestion, service, visit, search, placeholder (+7 more) ### Community 438 - "Community 438" Cohesion: 0.13 @@ -3287,16 +3280,16 @@ Cohesion: 0.13 Nodes (15): quicklaunch, bookmark, custom, searchsuggestion, service, visit, search, placeholder (+7 more) ### Community 443 - "Community 443" -Cohesion: 0.13 -Nodes (15): quicklaunch, bookmark, custom, searchsuggestion, service, visit, search, placeholder (+7 more) +Cohesion: 0.15 +Nodes (15): homebridge, available_update, child_bridges, ok, up_to_date, update_available, updates, ombi (+7 more) ### Community 444 - "Community 444" Cohesion: 0.13 Nodes (15): quicklaunch, bookmark, custom, searchsuggestion, service, visit, search, placeholder (+7 more) ### Community 445 - "Community 445" -Cohesion: 0.15 -Nodes (15): homebridge, available_update, child_bridges, ok, up_to_date, update_available, updates, ombi (+7 more) +Cohesion: 0.13 +Nodes (6): BookmarksGroup(), DisclosurePanel, panel, DisclosurePanel, panel, wrapper ### Community 446 - "Community 446" Cohesion: 0.13 @@ -3304,7 +3297,7 @@ Nodes (15): quicklaunch, bookmark, custom, searchsuggestion, service, visit, sea ### Community 447 - "Community 447" Cohesion: 0.13 -Nodes (6): BookmarksGroup(), DisclosurePanel, panel, DisclosurePanel, panel, wrapper +Nodes (15): quicklaunch, bookmark, custom, searchsuggestion, service, visit, search, placeholder (+7 more) ### Community 448 - "Community 448" Cohesion: 0.13 @@ -3335,101 +3328,101 @@ Cohesion: 0.13 Nodes (15): quicklaunch, bookmark, custom, searchsuggestion, service, visit, search, placeholder (+7 more) ### Community 455 - "Community 455" -Cohesion: 0.13 -Nodes (15): quicklaunch, bookmark, custom, searchsuggestion, service, visit, search, placeholder (+7 more) - -### Community 456 - "Community 456" -Cohesion: 0.13 -Nodes (15): quicklaunch, bookmark, custom, searchsuggestion, service, visit, search, placeholder (+7 more) - -### Community 457 - "Community 457" -Cohesion: 0.18 -Nodes (10): apiCall(), bookloreProxyHandler(), logger, login(), summarizeStatuses(), books, { httpProxy, getServiceWidget, cache, logger }, req (+2 more) - -### Community 458 - "Community 458" Cohesion: 0.18 Nodes (10): apiCall(), freshrssProxyHandler(), logger, login(), { httpProxy, getServiceWidget, cache, logger }, listCalls, loginCalls, req (+2 more) -### Community 459 - "Community 459" +### Community 456 - "Community 456" +Cohesion: 0.18 +Nodes (10): apiCall(), bookloreProxyHandler(), logger, login(), summarizeStatuses(), books, { httpProxy, getServiceWidget, cache, logger }, req (+2 more) + +### Community 457 - "Community 457" Cohesion: 0.14 Nodes (7): Component(), { container }, { useWidgetAPI }, Component(), { container }, { useWidgetAPI }, { Interface, System } -### Community 460 - "Community 460" +### Community 458 - "Community 458" Cohesion: 0.14 Nodes (14): mikrotik, cpuLoad, memoryUsed, numberOfLeases, nextcloud, activeusers, freespace, memoryusage (+6 more) -### Community 461 - "Community 461" +### Community 459 - "Community 459" Cohesion: 0.14 Nodes (14): quicklaunch, bookmark, custom, service, visit, search, placeholder, widget (+6 more) -### Community 462 - "Community 462" +### Community 460 - "Community 460" Cohesion: 0.15 Nodes (14): hdhomerun, channels, hd, immich, photos, storage, users, videos (+6 more) -### Community 463 - "Community 463" +### Community 461 - "Community 461" Cohesion: 0.14 Nodes (14): fritzbox, connectionStatus, connectionStatusAuthenticating, connectionStatusConnected, connectionStatusDisconnected, connectionStatusPendingDisconnect, connectionStatusUnconfigured, externalIPAddress (+6 more) -### Community 464 - "Community 464" +### Community 462 - "Community 462" +Cohesion: 0.19 +Nodes (7): colorVariants, integration, compareDateTimezone(), date, day, link, dayInWeekId + +### Community 463 - "Community 463" Cohesion: 0.21 Nodes (12): constructedServiceFromResource(), getSchemaFromGateway(), getUrlFromHttpRoute(), getUrlFromIngress(), getUrlSchema(), isDiscoverable(), kc, logger (+4 more) -### Community 465 - "Community 465" +### Community 464 - "Community 464" Cohesion: 0.14 Nodes (13): a1, a2, b, formatter, instance, labelStackMsg, msg, originalConsole (+5 more) -### Community 466 - "Community 466" +### Community 465 - "Community 465" Cohesion: 0.19 Nodes (9): dataParams, delugeProxyHandler(), logger, login(), sendRpc(), req, res, { sendJsonRpcRequest, getServiceWidget, logger } (+1 more) -### Community 467 - "Community 467" +### Community 466 - "Community 466" Cohesion: 0.15 Nodes (8): defaultQueries, getQuery(), homeassistantProxyHandler(), logger, { httpProxy, getServiceWidget, logger }, req, res, widget -### Community 468 - "Community 468" +### Community 467 - "Community 467" Cohesion: 0.21 Nodes (9): fetchFromPyloadAPI(), logger, login(), parsePyloadResponse(), pyloadProxyHandler(), { httpProxy, getServiceWidget, cache, logger }, req, res (+1 more) -### Community 469 - "Community 469" +### Community 468 - "Community 468" Cohesion: 0.18 Nodes (9): countsToExtract, extractCounts(), logger, makeBody(), suwayomiProxyHandler(), { httpProxy, getServiceWidget, logger }, req, res (+1 more) -### Community 470 - "Community 470" +### Community 469 - "Community 469" Cohesion: 0.18 Nodes (10): SettingsContext, SettingsProvider(), files.exclude, **/.next, **/node_modules, [python], editor.defaultFormatter, yaml.customTags (+2 more) -### Community 471 - "Community 471" +### Community 470 - "Community 470" Cohesion: 0.22 Nodes (9): Component(), generateStreamTitle(), millisecondsToString(), millisecondsToTime(), SessionEntry(), SingleSessionEntry(), bars, { container } (+1 more) -### Community 472 - "Community 472" -Cohesion: 0.19 -Nodes (13): emby, bitrate, episodes, movies, no_active, playing, songs, transcoding (+5 more) +### Community 471 - "Community 471" +Cohesion: 0.17 +Nodes (10): { container }, nodes, { useSWR }, handler(), logger, parseLonghornData(), { getSettings, httpProxy, logger }, payload (+2 more) -### Community 473 - "Community 473" +### Community 472 - "Community 472" Cohesion: 0.15 Nodes (12): apiError, percent, { useSWR }, { getSettings, cachedRequest, logger }, req, res, res1, res2 (+4 more) -### Community 474 - "Community 474" +### Community 473 - "Community 473" Cohesion: 0.17 Nodes (12): technitium, totalAuthoritative, totalBlocked, totalCached, totalClients, totalDropped, totalNoError, totalNxDomain (+4 more) -### Community 475 - "Community 475" +### Community 474 - "Community 474" Cohesion: 0.20 Nodes (8): buildResponse(), logger, sumField(), { httpProxy, getServiceWidget, logger }, plans, req, res, widget -### Community 476 - "Community 476" -Cohesion: 0.21 -Nodes (8): apiCall(), homebridgeProxyHandler(), logger, login(), { httpProxy, getServiceWidget, cache, logger }, req, res, widget - -### Community 477 - "Community 477" +### Community 475 - "Community 475" Cohesion: 0.20 Nodes (8): fetchFromPlexAPI(), getWidget(), logger, plexProxyHandler(), { httpProxy, getServiceWidget, cache, xml2json, logger }, req, res, widget -### Community 478 - "Community 478" +### Community 476 - "Community 476" Cohesion: 0.21 Nodes (8): apiCall(), homeboxProxyHandler(), logger, login(), { httpProxy, getServiceWidget, cache, logger }, req, res, widget +### Community 477 - "Community 477" +Cohesion: 0.21 +Nodes (8): apiCall(), homebridgeProxyHandler(), logger, login(), { httpProxy, getServiceWidget, cache, logger }, req, res, widget + +### Community 478 - "Community 478" +Cohesion: 0.17 +Nodes (12): technitium, totalAuthoritative, totalBlocked, totalCached, totalClients, totalDropped, totalNoError, totalNxDomain (+4 more) + ### Community 479 - "Community 479" Cohesion: 0.17 Nodes (12): technitium, totalAuthoritative, totalBlocked, totalCached, totalClients, totalDropped, totalNoError, totalNxDomain (+4 more) @@ -3439,13 +3432,13 @@ Cohesion: 0.17 Nodes (12): technitium, totalAuthoritative, totalBlocked, totalCached, totalClients, totalDropped, totalNoError, totalNxDomain (+4 more) ### Community 481 - "Community 481" -Cohesion: 0.17 -Nodes (12): technitium, totalAuthoritative, totalBlocked, totalCached, totalClients, totalDropped, totalNoError, totalNxDomain (+4 more) - -### Community 482 - "Community 482" Cohesion: 0.20 Nodes (8): { cache, cv, useSWR }, links, Version(), Component(), countStatus(), formatDate(), { container }, { useWidgetAPI } +### Community 482 - "Community 482" +Cohesion: 0.17 +Nodes (12): technitium, totalAuthoritative, totalBlocked, totalCached, totalClients, totalDropped, totalNoError, totalNxDomain (+4 more) + ### Community 483 - "Community 483" Cohesion: 0.17 Nodes (12): technitium, totalAuthoritative, totalBlocked, totalCached, totalClients, totalDropped, totalNoError, totalNxDomain (+4 more) @@ -3519,17 +3512,17 @@ Cohesion: 0.17 Nodes (12): technitium, totalAuthoritative, totalBlocked, totalCached, totalClients, totalDropped, totalNoError, totalNxDomain (+4 more) ### Community 501 - "Community 501" -Cohesion: 0.17 -Nodes (12): technitium, totalAuthoritative, totalBlocked, totalCached, totalClients, totalDropped, totalNoError, totalNxDomain (+4 more) - -### Community 502 - "Community 502" Cohesion: 0.20 Nodes (10): Component(), formatValue(), getColor(), getSize(), getValue(), { container }, delta, link (+2 more) -### Community 503 - "Community 503" +### Community 502 - "Community 502" Cohesion: 0.24 Nodes (8): Component(), generateStreamTitle(), SessionEntry(), SingleSessionEntry(), { container }, { useWidgetAPI }, ticksToString(), ticksToTime() +### Community 503 - "Community 503" +Cohesion: 0.17 +Nodes (12): technitium, totalAuthoritative, totalBlocked, totalCached, totalClients, totalDropped, totalNoError, totalNxDomain (+4 more) + ### Community 504 - "Community 504" Cohesion: 0.17 Nodes (12): technitium, totalAuthoritative, totalBlocked, totalCached, totalClients, totalDropped, totalNoError, totalNxDomain (+4 more) @@ -3607,28 +3600,28 @@ Cohesion: 0.17 Nodes (12): technitium, totalAuthoritative, totalBlocked, totalCached, totalClients, totalDropped, totalNoError, totalNxDomain (+4 more) ### Community 523 - "Community 523" -Cohesion: 0.17 -Nodes (12): technitium, totalAuthoritative, totalBlocked, totalCached, totalClients, totalDropped, totalNoError, totalNxDomain (+4 more) - -### Community 524 - "Community 524" Cohesion: 0.20 Nodes (11): freshrss, subscriptions, unread, read, miniflux, suwayomi, downloadedread, downloadedunread (+3 more) -### Community 525 - "Community 525" +### Community 524 - "Community 524" Cohesion: 0.20 Nodes (7): audiobookshelfProxyHandler(), logger, retrieveFromAPI(), { httpProxy, getServiceWidget, logger }, req, res, widget +### Community 525 - "Community 525" +Cohesion: 0.18 +Nodes (5): getWidget(), resolveRequestContext(), { httpProxy, getServiceWidget, cache, logger }, res, widget + ### Community 526 - "Community 526" Cohesion: 0.20 Nodes (7): logger, login(), omadaProxyHandler(), { httpProxy, getServiceWidget, logger }, req, res, widget ### Community 527 - "Community 527" -Cohesion: 0.18 -Nodes (5): getWidget(), resolveRequestContext(), { httpProxy, getServiceWidget, cache, logger }, res, widget +Cohesion: 0.20 +Nodes (7): logger, processUnraidResponse(), { httpProxy, getServiceWidget, logger }, req, res, unraidProxyHandler(), widget ### Community 528 - "Community 528" Cohesion: 0.20 -Nodes (7): logger, processUnraidResponse(), { httpProxy, getServiceWidget, logger }, req, res, unraidProxyHandler(), widget +Nodes (11): freshrss, subscriptions, unread, read, miniflux, suwayomi, downloadedread, downloadedunread (+3 more) ### Community 529 - "Community 529" Cohesion: 0.20 @@ -3651,13 +3644,13 @@ Cohesion: 0.20 Nodes (11): freshrss, subscriptions, unread, read, miniflux, suwayomi, downloadedread, downloadedunread (+3 more) ### Community 534 - "Community 534" -Cohesion: 0.20 -Nodes (11): freshrss, subscriptions, unread, read, miniflux, suwayomi, downloadedread, downloadedunread (+3 more) - -### Community 535 - "Community 535" Cohesion: 0.35 Nodes (7): Component(), { container }, { useSWR }, calculateCPUPercent(), calculateThroughput(), calculateUsedMemory(), stats +### Community 535 - "Community 535" +Cohesion: 0.20 +Nodes (11): freshrss, subscriptions, unread, read, miniflux, suwayomi, downloadedread, downloadedunread (+3 more) + ### Community 536 - "Community 536" Cohesion: 0.20 Nodes (11): freshrss, subscriptions, unread, read, miniflux, suwayomi, downloadedread, downloadedunread (+3 more) @@ -3735,13 +3728,13 @@ Cohesion: 0.20 Nodes (11): freshrss, subscriptions, unread, read, miniflux, suwayomi, downloadedread, downloadedunread (+3 more) ### Community 555 - "Community 555" -Cohesion: 0.20 -Nodes (11): freshrss, subscriptions, unread, read, miniflux, suwayomi, downloadedread, downloadedunread (+3 more) - -### Community 556 - "Community 556" Cohesion: 0.18 Nodes (11): cloudflared, origin_ip, kopia, failed, lastrun, nextrun, size, status (+3 more) +### Community 556 - "Community 556" +Cohesion: 0.20 +Nodes (11): freshrss, subscriptions, unread, read, miniflux, suwayomi, downloadedread, downloadedunread (+3 more) + ### Community 557 - "Community 557" Cohesion: 0.20 Nodes (11): freshrss, subscriptions, unread, read, miniflux, suwayomi, downloadedread, downloadedunread (+3 more) @@ -3760,20 +3753,20 @@ Nodes (11): freshrss, subscriptions, unread, read, miniflux, suwayomi, downloade ### Community 561 - "Community 561" Cohesion: 0.20 -Nodes (11): freshrss, subscriptions, unread, read, miniflux, suwayomi, downloadedread, downloadedunread (+3 more) +Nodes (8): traefik, routers, services, config, middleware(), errSpy, { NextResponse }, res ### Community 562 - "Community 562" Cohesion: 0.20 -Nodes (8): traefik, routers, services, config, middleware(), errSpy, { NextResponse }, res - -### Community 563 - "Community 563" -Cohesion: 0.20 Nodes (11): freshrss, subscriptions, unread, read, miniflux, suwayomi, downloadedread, downloadedunread (+3 more) -### Community 564 - "Community 564" +### Community 563 - "Community 563" Cohesion: 0.18 Nodes (4): colors, blue, { container }, setColor +### Community 564 - "Community 564" +Cohesion: 0.16 +Nodes (7): getCurrentPosition, query, { useSWR }, conditions, { cachedRequest }, req, res + ### Community 565 - "Community 565" Cohesion: 0.22 Nodes (6): { checkAndCopyConfig, getSettings }, res, matchMedia, ThemeContext, ThemeProvider(), themes @@ -3828,11 +3821,11 @@ Nodes (5): logger, { httpProxy, getServiceWidget, logger }, req, res, widget ### Community 578 - "Community 578" Cohesion: 0.20 -Nodes (6): getWidget(), resolveRequestContext(), { httpProxy, getServiceWidget, getPrivateWidgetOptions, cache, cookieJar, logger }, req, res, widget +Nodes (6): instance, req, res, { UrbackupServer, state, getServiceWidget }, urbackupProxyHandler(), widget ### Community 579 - "Community 579" Cohesion: 0.20 -Nodes (6): instance, req, res, { UrbackupServer, state, getServiceWidget }, urbackupProxyHandler(), widget +Nodes (6): getWidget(), resolveRequestContext(), { httpProxy, getServiceWidget, getPrivateWidgetOptions, cache, cookieJar, logger }, req, res, widget ### Community 580 - "Community 580" Cohesion: 0.20 @@ -3860,7 +3853,7 @@ Nodes (5): widget, logger, { httpProxy, getServiceWidget, validateWidgetData, lo ### Community 587 - "Community 587" Cohesion: 0.22 -Nodes (5): logger, { httpProxy, getServiceWidget, logger }, req, res, widget +Nodes (5): logger, { httpProxy, getServiceWidget, validateWidgetData, logger }, req, res, widget ### Community 588 - "Community 588" Cohesion: 0.22 @@ -3868,7 +3861,7 @@ Nodes (5): logger, { httpProxy, getServiceWidget, logger }, req, res, widget ### Community 589 - "Community 589" Cohesion: 0.22 -Nodes (5): logger, { httpProxy, getServiceWidget, validateWidgetData, logger }, req, res, widget +Nodes (5): logger, { httpProxy, getServiceWidget, logger }, req, res, widget ### Community 590 - "Community 590" Cohesion: 0.22 @@ -3895,25 +3888,25 @@ Cohesion: 0.22 Nodes (5): logger, { httpProxy, getServiceWidget, logger }, req, res, widget ### Community 596 - "Community 596" -Cohesion: 0.22 -Nodes (9): quicklaunch, bookmark, custom, searchsuggestion, service, visit, search, placeholder (+1 more) - -### Community 597 - "Community 597" Cohesion: 0.36 Nodes (7): Component(), generateStreamTitle(), millisecondsToString(), millisecondsToTime(), SessionEntry(), SingleSessionEntry(), { useWidgetAPI } -### Community 598 - "Community 598" +### Community 597 - "Community 597" Cohesion: 0.22 Nodes (7): Component(), POOL_FIELDS, POOLS, { container }, service, { useWidgetAPI }, UNRAID_DEFAULT_FIELDS -### Community 599 - "Community 599" +### Community 598 - "Community 598" Cohesion: 0.25 Nodes (6): Component(), determineStatuses(), Status, { container }, service, { useWidgetAPI } -### Community 600 - "Community 600" +### Community 599 - "Community 599" Cohesion: 0.22 Nodes (9): moonraker, layers, print_progress, print_status, printer_state, octoprint, job_completion, temp_bed (+1 more) +### Community 600 - "Community 600" +Cohesion: 0.31 +Nodes (9): emby, bitrate, episodes, no_active, playing, songs, transcoding, tautulli (+1 more) + ### Community 601 - "Community 601" Cohesion: 0.22 Nodes (9): moonraker, layers, print_progress, print_status, printer_state, octoprint, job_completion, temp_bed (+1 more) @@ -3987,170 +3980,174 @@ Cohesion: 0.32 Nodes (8): ombi, approved, available, pending, seerr, completed, issues, processing ### Community 620 - "Community 620" -Cohesion: 0.29 -Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries +Cohesion: 0.32 +Nodes (8): ombi, approved, available, pending, seerr, completed, issues, processing ### Community 621 - "Community 621" Cohesion: 0.29 Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries ### Community 622 - "Community 622" -Cohesion: 0.32 -Nodes (8): ombi, approved, available, pending, seerr, completed, issues, processing +Cohesion: 0.29 +Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries ### Community 623 - "Community 623" -Cohesion: 0.29 -Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries +Cohesion: 0.32 +Nodes (8): ombi, approved, available, pending, seerr, completed, issues, processing ### Community 624 - "Community 624" -Cohesion: 0.32 -Nodes (8): ombi, approved, available, pending, seerr, completed, issues, processing +Cohesion: 0.29 +Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries ### Community 625 - "Community 625" -Cohesion: 0.29 -Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries +Cohesion: 0.32 +Nodes (8): ombi, approved, available, pending, seerr, completed, issues, processing ### Community 626 - "Community 626" -Cohesion: 0.32 -Nodes (8): ombi, approved, available, pending, seerr, completed, issues, processing +Cohesion: 0.29 +Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries ### Community 627 - "Community 627" -Cohesion: 0.29 -Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries +Cohesion: 0.32 +Nodes (8): ombi, approved, available, pending, seerr, completed, issues, processing ### Community 628 - "Community 628" -Cohesion: 0.32 -Nodes (8): ombi, approved, available, pending, seerr, completed, issues, processing +Cohesion: 0.29 +Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries ### Community 629 - "Community 629" -Cohesion: 0.29 -Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries +Cohesion: 0.32 +Nodes (8): ombi, approved, available, pending, seerr, completed, issues, processing ### Community 630 - "Community 630" -Cohesion: 0.32 -Nodes (8): ombi, approved, available, pending, seerr, completed, issues, processing +Cohesion: 0.29 +Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries ### Community 631 - "Community 631" -Cohesion: 0.29 -Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries +Cohesion: 0.32 +Nodes (8): ombi, approved, available, pending, seerr, completed, issues, processing ### Community 632 - "Community 632" -Cohesion: 0.32 -Nodes (8): ombi, approved, available, pending, seerr, completed, issues, processing +Cohesion: 0.29 +Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries ### Community 633 - "Community 633" -Cohesion: 0.29 -Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries +Cohesion: 0.32 +Nodes (8): ombi, approved, available, pending, seerr, completed, issues, processing ### Community 634 - "Community 634" -Cohesion: 0.32 -Nodes (8): ombi, approved, available, pending, seerr, completed, issues, processing +Cohesion: 0.29 +Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries ### Community 635 - "Community 635" -Cohesion: 0.29 -Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries +Cohesion: 0.32 +Nodes (8): ombi, approved, available, pending, seerr, completed, issues, processing ### Community 636 - "Community 636" -Cohesion: 0.32 -Nodes (8): ombi, approved, available, pending, seerr, completed, issues, processing +Cohesion: 0.29 +Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries ### Community 637 - "Community 637" -Cohesion: 0.29 -Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries +Cohesion: 0.32 +Nodes (8): ombi, approved, available, pending, seerr, completed, issues, processing ### Community 638 - "Community 638" -Cohesion: 0.32 -Nodes (8): ombi, approved, available, pending, seerr, completed, issues, processing +Cohesion: 0.29 +Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries ### Community 639 - "Community 639" -Cohesion: 0.29 -Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries +Cohesion: 0.32 +Nodes (8): ombi, approved, available, pending, seerr, completed, issues, processing ### Community 640 - "Community 640" -Cohesion: 0.32 -Nodes (8): ombi, approved, available, pending, seerr, completed, issues, processing +Cohesion: 0.29 +Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries ### Community 641 - "Community 641" -Cohesion: 0.29 -Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries +Cohesion: 0.32 +Nodes (8): ombi, approved, available, pending, seerr, completed, issues, processing ### Community 642 - "Community 642" -Cohesion: 0.32 -Nodes (8): ombi, approved, available, pending, seerr, completed, issues, processing +Cohesion: 0.29 +Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries ### Community 643 - "Community 643" -Cohesion: 0.29 -Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries +Cohesion: 0.32 +Nodes (8): ombi, approved, available, pending, seerr, completed, issues, processing ### Community 644 - "Community 644" -Cohesion: 0.32 -Nodes (8): ombi, approved, available, pending, seerr, completed, issues, processing +Cohesion: 0.29 +Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries ### Community 645 - "Community 645" -Cohesion: 0.29 -Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries +Cohesion: 0.32 +Nodes (8): ombi, approved, available, pending, seerr, completed, issues, processing ### Community 646 - "Community 646" -Cohesion: 0.32 -Nodes (8): ombi, approved, available, pending, seerr, completed, issues, processing +Cohesion: 0.29 +Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries ### Community 647 - "Community 647" -Cohesion: 0.29 -Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries +Cohesion: 0.32 +Nodes (8): ombi, approved, available, pending, seerr, completed, issues, processing ### Community 648 - "Community 648" -Cohesion: 0.32 -Nodes (8): ombi, approved, available, pending, seerr, completed, issues, processing +Cohesion: 0.29 +Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries ### Community 649 - "Community 649" -Cohesion: 0.29 -Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries +Cohesion: 0.32 +Nodes (8): ombi, approved, available, pending, seerr, completed, issues, processing ### Community 650 - "Community 650" -Cohesion: 0.32 -Nodes (8): ombi, approved, available, pending, seerr, completed, issues, processing - -### Community 651 - "Community 651" Cohesion: 0.29 Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries -### Community 652 - "Community 652" +### Community 651 - "Community 651" Cohesion: 0.32 Nodes (8): ombi, approved, available, pending, seerr, completed, issues, processing -### Community 653 - "Community 653" +### Community 652 - "Community 652" Cohesion: 0.29 -Nodes (6): Component(), { container }, service, { useWidgetAPI }, toApiMonthYear(), todayDate +Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries + +### Community 653 - "Community 653" +Cohesion: 0.32 +Nodes (8): ombi, approved, available, pending, seerr, completed, issues, processing ### Community 654 - "Community 654" Cohesion: 0.29 -Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries +Nodes (6): Component(), { container }, service, { useWidgetAPI }, toApiMonthYear(), todayDate ### Community 655 - "Community 655" -Cohesion: 0.32 -Nodes (8): ombi, approved, available, pending, seerr, completed, issues, processing - -### Community 656 - "Community 656" Cohesion: 0.29 Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries +### Community 656 - "Community 656" +Cohesion: 0.32 +Nodes (8): ombi, approved, available, pending, seerr, completed, issues, processing + ### Community 657 - "Community 657" Cohesion: 0.29 Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries ### Community 658 - "Community 658" -Cohesion: 0.32 -Nodes (8): ombi, approved, available, pending, seerr, completed, issues, processing - -### Community 659 - "Community 659" Cohesion: 0.29 Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries -### Community 660 - "Community 660" +### Community 659 - "Community 659" Cohesion: 0.32 Nodes (8): ombi, approved, available, pending, seerr, completed, issues, processing +### Community 660 - "Community 660" +Cohesion: 0.29 +Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries + ### Community 661 - "Community 661" +Cohesion: 0.32 +Nodes (8): ombi, approved, available, pending, seerr, completed, issues, processing + +### Community 662 - "Community 662" Cohesion: 0.25 Nodes (6): fetchSpy, rightAligned, { state, @@ -4166,74 +4163,70 @@ Nodes (6): fetchSpy, rightAligned, { useWindowFocus, }, req, res, { servicesResponse } -### Community 662 - "Community 662" +### Community 663 - "Community 663" Cohesion: 0.29 Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries -### Community 663 - "Community 663" -Cohesion: 0.32 -Nodes (8): ombi, approved, available, pending, seerr, completed, issues, processing - ### Community 664 - "Community 664" -Cohesion: 0.29 -Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries +Cohesion: 0.32 +Nodes (8): ombi, approved, available, pending, seerr, completed, issues, processing ### Community 665 - "Community 665" -Cohesion: 0.32 -Nodes (8): ombi, approved, available, pending, seerr, completed, issues, processing +Cohesion: 0.29 +Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries ### Community 666 - "Community 666" -Cohesion: 0.29 -Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries - -### Community 667 - "Community 667" Cohesion: 0.32 Nodes (8): ombi, approved, available, pending, seerr, completed, issues, processing -### Community 668 - "Community 668" +### Community 667 - "Community 667" Cohesion: 0.29 Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries +### Community 668 - "Community 668" +Cohesion: 0.32 +Nodes (8): ombi, approved, available, pending, seerr, completed, issues, processing + ### Community 669 - "Community 669" Cohesion: 0.29 Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries ### Community 670 - "Community 670" -Cohesion: 0.29 -Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries +Cohesion: 0.21 +Nodes (8): gotify, apps, clients, messages, traefik, middleware, routers, services ### Community 671 - "Community 671" -Cohesion: 0.32 -Nodes (8): ombi, approved, available, pending, seerr, completed, issues, processing +Cohesion: 0.29 +Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries ### Community 672 - "Community 672" Cohesion: 0.29 Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries ### Community 673 - "Community 673" -Cohesion: 0.29 -Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries - -### Community 674 - "Community 674" Cohesion: 0.32 Nodes (8): ombi, approved, available, pending, seerr, completed, issues, processing +### Community 674 - "Community 674" +Cohesion: 0.29 +Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries + ### Community 675 - "Community 675" +Cohesion: 0.29 +Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries + +### Community 676 - "Community 676" +Cohesion: 0.32 +Nodes (8): ombi, approved, available, pending, seerr, completed, issues, processing + +### Community 677 - "Community 677" Cohesion: 0.25 Nodes (7): { container }, currentDate, events, { EventStub, compareDateTimezoneStub }, service, setShowDate, showDate -### Community 676 - "Community 676" +### Community 678 - "Community 678" Cohesion: 0.25 Nodes (5): boundary, { dynamic }, el, forwarded, widgetMappings -### Community 677 - "Community 677" -Cohesion: 0.29 -Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries - -### Community 678 - "Community 678" -Cohesion: 0.29 -Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries - ### Community 679 - "Community 679" Cohesion: 0.29 Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries @@ -4259,8 +4252,8 @@ Cohesion: 0.29 Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries ### Community 685 - "Community 685" -Cohesion: 0.21 -Nodes (8): gotify, apps, clients, messages, traefik, middleware, routers, services +Cohesion: 0.29 +Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries ### Community 686 - "Community 686" Cohesion: 0.29 @@ -4268,239 +4261,239 @@ Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity ### Community 687 - "Community 687" Cohesion: 0.29 -Nodes (7): evcc, battery_soc, charge_power, grid_power, home_power, kilowatt, pv_power +Nodes (8): adguard, filtered, latency, pihole, blocked, blocked_percent, gravity, queries ### Community 688 - "Community 688" Cohesion: 0.29 -Nodes (7): qnap, cpuUsage, invalid, memUsage, poolUsage, systemTempC, volumeUsage +Nodes (7): evcc, battery_soc, charge_power, grid_power, home_power, kilowatt, pv_power ### Community 689 - "Community 689" Cohesion: 0.29 -Nodes (7): evcc, battery_soc, charge_power, grid_power, home_power, kilowatt, pv_power +Nodes (7): qnap, cpuUsage, invalid, memUsage, poolUsage, systemTempC, volumeUsage ### Community 690 - "Community 690" Cohesion: 0.29 -Nodes (7): qnap, cpuUsage, invalid, memUsage, poolUsage, systemTempC, volumeUsage +Nodes (7): evcc, battery_soc, charge_power, grid_power, home_power, kilowatt, pv_power ### Community 691 - "Community 691" Cohesion: 0.29 -Nodes (7): evcc, battery_soc, charge_power, grid_power, home_power, kilowatt, pv_power +Nodes (7): qnap, cpuUsage, invalid, memUsage, poolUsage, systemTempC, volumeUsage ### Community 692 - "Community 692" Cohesion: 0.29 -Nodes (7): qnap, cpuUsage, invalid, memUsage, poolUsage, systemTempC, volumeUsage +Nodes (7): evcc, battery_soc, charge_power, grid_power, home_power, kilowatt, pv_power ### Community 693 - "Community 693" Cohesion: 0.29 -Nodes (7): evcc, battery_soc, charge_power, grid_power, home_power, kilowatt, pv_power +Nodes (7): qnap, cpuUsage, invalid, memUsage, poolUsage, systemTempC, volumeUsage ### Community 694 - "Community 694" Cohesion: 0.29 -Nodes (7): qnap, cpuUsage, invalid, memUsage, poolUsage, systemTempC, volumeUsage +Nodes (7): evcc, battery_soc, charge_power, grid_power, home_power, kilowatt, pv_power ### Community 695 - "Community 695" Cohesion: 0.29 -Nodes (7): evcc, battery_soc, charge_power, grid_power, home_power, kilowatt, pv_power +Nodes (7): qnap, cpuUsage, invalid, memUsage, poolUsage, systemTempC, volumeUsage ### Community 696 - "Community 696" Cohesion: 0.29 -Nodes (7): qnap, cpuUsage, invalid, memUsage, poolUsage, systemTempC, volumeUsage +Nodes (7): evcc, battery_soc, charge_power, grid_power, home_power, kilowatt, pv_power ### Community 697 - "Community 697" Cohesion: 0.29 -Nodes (7): evcc, battery_soc, charge_power, grid_power, home_power, kilowatt, pv_power +Nodes (7): qnap, cpuUsage, invalid, memUsage, poolUsage, systemTempC, volumeUsage ### Community 698 - "Community 698" Cohesion: 0.29 -Nodes (7): qnap, cpuUsage, invalid, memUsage, poolUsage, systemTempC, volumeUsage +Nodes (7): evcc, battery_soc, charge_power, grid_power, home_power, kilowatt, pv_power ### Community 699 - "Community 699" Cohesion: 0.29 -Nodes (7): evcc, battery_soc, charge_power, grid_power, home_power, kilowatt, pv_power +Nodes (7): qnap, cpuUsage, invalid, memUsage, poolUsage, systemTempC, volumeUsage ### Community 700 - "Community 700" Cohesion: 0.29 -Nodes (7): qnap, cpuUsage, invalid, memUsage, poolUsage, systemTempC, volumeUsage +Nodes (7): evcc, battery_soc, charge_power, grid_power, home_power, kilowatt, pv_power ### Community 701 - "Community 701" Cohesion: 0.29 -Nodes (7): evcc, battery_soc, charge_power, grid_power, home_power, kilowatt, pv_power +Nodes (7): qnap, cpuUsage, invalid, memUsage, poolUsage, systemTempC, volumeUsage ### Community 702 - "Community 702" Cohesion: 0.29 -Nodes (7): qnap, cpuUsage, invalid, memUsage, poolUsage, systemTempC, volumeUsage +Nodes (7): evcc, battery_soc, charge_power, grid_power, home_power, kilowatt, pv_power ### Community 703 - "Community 703" Cohesion: 0.29 -Nodes (7): evcc, battery_soc, charge_power, grid_power, home_power, kilowatt, pv_power +Nodes (7): qnap, cpuUsage, invalid, memUsage, poolUsage, systemTempC, volumeUsage ### Community 704 - "Community 704" Cohesion: 0.29 -Nodes (7): qnap, cpuUsage, invalid, memUsage, poolUsage, systemTempC, volumeUsage +Nodes (7): evcc, battery_soc, charge_power, grid_power, home_power, kilowatt, pv_power ### Community 705 - "Community 705" Cohesion: 0.29 -Nodes (7): evcc, battery_soc, charge_power, grid_power, home_power, kilowatt, pv_power +Nodes (7): qnap, cpuUsage, invalid, memUsage, poolUsage, systemTempC, volumeUsage ### Community 706 - "Community 706" Cohesion: 0.29 -Nodes (7): qnap, cpuUsage, invalid, memUsage, poolUsage, systemTempC, volumeUsage +Nodes (7): evcc, battery_soc, charge_power, grid_power, home_power, kilowatt, pv_power ### Community 707 - "Community 707" Cohesion: 0.29 -Nodes (7): evcc, battery_soc, charge_power, grid_power, home_power, kilowatt, pv_power +Nodes (7): qnap, cpuUsage, invalid, memUsage, poolUsage, systemTempC, volumeUsage ### Community 708 - "Community 708" Cohesion: 0.29 -Nodes (7): qnap, cpuUsage, invalid, memUsage, poolUsage, systemTempC, volumeUsage +Nodes (7): evcc, battery_soc, charge_power, grid_power, home_power, kilowatt, pv_power ### Community 709 - "Community 709" Cohesion: 0.29 -Nodes (7): evcc, battery_soc, charge_power, grid_power, home_power, kilowatt, pv_power +Nodes (7): qnap, cpuUsage, invalid, memUsage, poolUsage, systemTempC, volumeUsage ### Community 710 - "Community 710" Cohesion: 0.29 -Nodes (7): qnap, cpuUsage, invalid, memUsage, poolUsage, systemTempC, volumeUsage +Nodes (7): evcc, battery_soc, charge_power, grid_power, home_power, kilowatt, pv_power ### Community 711 - "Community 711" Cohesion: 0.29 -Nodes (7): evcc, battery_soc, charge_power, grid_power, home_power, kilowatt, pv_power +Nodes (7): qnap, cpuUsage, invalid, memUsage, poolUsage, systemTempC, volumeUsage ### Community 712 - "Community 712" Cohesion: 0.29 -Nodes (7): qnap, cpuUsage, invalid, memUsage, poolUsage, systemTempC, volumeUsage +Nodes (7): evcc, battery_soc, charge_power, grid_power, home_power, kilowatt, pv_power ### Community 713 - "Community 713" Cohesion: 0.29 -Nodes (7): evcc, battery_soc, charge_power, grid_power, home_power, kilowatt, pv_power +Nodes (7): qnap, cpuUsage, invalid, memUsage, poolUsage, systemTempC, volumeUsage ### Community 714 - "Community 714" Cohesion: 0.29 -Nodes (7): qnap, cpuUsage, invalid, memUsage, poolUsage, systemTempC, volumeUsage +Nodes (7): evcc, battery_soc, charge_power, grid_power, home_power, kilowatt, pv_power ### Community 715 - "Community 715" Cohesion: 0.29 -Nodes (7): evcc, battery_soc, charge_power, grid_power, home_power, kilowatt, pv_power +Nodes (7): qnap, cpuUsage, invalid, memUsage, poolUsage, systemTempC, volumeUsage ### Community 716 - "Community 716" Cohesion: 0.29 -Nodes (7): qnap, cpuUsage, invalid, memUsage, poolUsage, systemTempC, volumeUsage +Nodes (7): evcc, battery_soc, charge_power, grid_power, home_power, kilowatt, pv_power ### Community 717 - "Community 717" Cohesion: 0.29 -Nodes (7): evcc, battery_soc, charge_power, grid_power, home_power, kilowatt, pv_power +Nodes (7): qnap, cpuUsage, invalid, memUsage, poolUsage, systemTempC, volumeUsage ### Community 718 - "Community 718" Cohesion: 0.29 -Nodes (7): qnap, cpuUsage, invalid, memUsage, poolUsage, systemTempC, volumeUsage +Nodes (7): evcc, battery_soc, charge_power, grid_power, home_power, kilowatt, pv_power ### Community 719 - "Community 719" Cohesion: 0.29 -Nodes (7): evcc, battery_soc, charge_power, grid_power, home_power, kilowatt, pv_power +Nodes (7): qnap, cpuUsage, invalid, memUsage, poolUsage, systemTempC, volumeUsage ### Community 720 - "Community 720" Cohesion: 0.29 -Nodes (7): qnap, cpuUsage, invalid, memUsage, poolUsage, systemTempC, volumeUsage +Nodes (7): evcc, battery_soc, charge_power, grid_power, home_power, kilowatt, pv_power ### Community 721 - "Community 721" Cohesion: 0.29 -Nodes (7): evcc, battery_soc, charge_power, grid_power, home_power, kilowatt, pv_power +Nodes (7): qnap, cpuUsage, invalid, memUsage, poolUsage, systemTempC, volumeUsage ### Community 722 - "Community 722" Cohesion: 0.29 -Nodes (7): qnap, cpuUsage, invalid, memUsage, poolUsage, systemTempC, volumeUsage +Nodes (7): evcc, battery_soc, charge_power, grid_power, home_power, kilowatt, pv_power ### Community 723 - "Community 723" Cohesion: 0.29 -Nodes (7): evcc, battery_soc, charge_power, grid_power, home_power, kilowatt, pv_power +Nodes (7): qnap, cpuUsage, invalid, memUsage, poolUsage, systemTempC, volumeUsage ### Community 724 - "Community 724" Cohesion: 0.29 -Nodes (7): qnap, cpuUsage, invalid, memUsage, poolUsage, systemTempC, volumeUsage +Nodes (7): evcc, battery_soc, charge_power, grid_power, home_power, kilowatt, pv_power ### Community 725 - "Community 725" Cohesion: 0.29 -Nodes (7): evcc, battery_soc, charge_power, grid_power, home_power, kilowatt, pv_power +Nodes (7): qnap, cpuUsage, invalid, memUsage, poolUsage, systemTempC, volumeUsage ### Community 726 - "Community 726" Cohesion: 0.29 -Nodes (7): qnap, cpuUsage, invalid, memUsage, poolUsage, systemTempC, volumeUsage +Nodes (7): evcc, battery_soc, charge_power, grid_power, home_power, kilowatt, pv_power ### Community 727 - "Community 727" Cohesion: 0.29 -Nodes (7): evcc, battery_soc, charge_power, grid_power, home_power, kilowatt, pv_power +Nodes (7): qnap, cpuUsage, invalid, memUsage, poolUsage, systemTempC, volumeUsage ### Community 728 - "Community 728" Cohesion: 0.29 -Nodes (7): qnap, cpuUsage, invalid, memUsage, poolUsage, systemTempC, volumeUsage +Nodes (7): evcc, battery_soc, charge_power, grid_power, home_power, kilowatt, pv_power ### Community 729 - "Community 729" Cohesion: 0.29 -Nodes (7): evcc, battery_soc, charge_power, grid_power, home_power, kilowatt, pv_power +Nodes (7): qnap, cpuUsage, invalid, memUsage, poolUsage, systemTempC, volumeUsage ### Community 730 - "Community 730" Cohesion: 0.29 -Nodes (7): qnap, cpuUsage, invalid, memUsage, poolUsage, systemTempC, volumeUsage +Nodes (7): evcc, battery_soc, charge_power, grid_power, home_power, kilowatt, pv_power ### Community 731 - "Community 731" Cohesion: 0.29 -Nodes (7): evcc, battery_soc, charge_power, grid_power, home_power, kilowatt, pv_power +Nodes (7): qnap, cpuUsage, invalid, memUsage, poolUsage, systemTempC, volumeUsage ### Community 732 - "Community 732" Cohesion: 0.29 -Nodes (7): qnap, cpuUsage, invalid, memUsage, poolUsage, systemTempC, volumeUsage +Nodes (7): evcc, battery_soc, charge_power, grid_power, home_power, kilowatt, pv_power ### Community 733 - "Community 733" Cohesion: 0.29 -Nodes (4): Component(), { container }, service, { useWidgetAPI } +Nodes (7): qnap, cpuUsage, invalid, memUsage, poolUsage, systemTempC, volumeUsage ### Community 734 - "Community 734" Cohesion: 0.29 -Nodes (5): Component(), ROMM_DEFAULT_FIELDS, { container }, service, { useWidgetAPI } +Nodes (4): Component(), { container }, service, { useWidgetAPI } ### Community 735 - "Community 735" Cohesion: 0.29 -Nodes (5): Component(), DeviceStatus, DeviceStatusThreshold, { container }, { useWidgetAPI } +Nodes (5): Component(), ROMM_DEFAULT_FIELDS, { container }, service, { useWidgetAPI } ### Community 736 - "Community 736" Cohesion: 0.29 -Nodes (5): BACKREST_DEFAULT_FIELDS, Component(), { container }, service, { useWidgetAPI } +Nodes (5): Component(), DeviceStatus, DeviceStatusThreshold, { container }, { useWidgetAPI } ### Community 737 - "Community 737" -Cohesion: 0.33 -Nodes (5): Component(), homeboxDefaultFields, { container }, service, { useWidgetAPI } +Cohesion: 0.29 +Nodes (5): BACKREST_DEFAULT_FIELDS, Component(), { container }, service, { useWidgetAPI } ### Community 738 - "Community 738" Cohesion: 0.33 -Nodes (5): Component(), karakeepDefaultFields, { container }, service, { useWidgetAPI } +Nodes (5): Component(), homeboxDefaultFields, { container }, service, { useWidgetAPI } ### Community 739 - "Community 739" +Cohesion: 0.33 +Nodes (5): Component(), karakeepDefaultFields, { container }, service, { useWidgetAPI } + +### Community 740 - "Community 740" Cohesion: 0.29 Nodes (5): Component(), { container }, downBlock, service, { useWidgetAPI } -### Community 740 - "Community 740" +### Community 741 - "Community 741" Cohesion: 0.33 Nodes (5): Component(), seerrDefaultFields, { container }, service, { useWidgetAPI } -### Community 741 - "Community 741" +### Community 742 - "Community 742" Cohesion: 0.29 Nodes (5): Component(), slskdDefaultFields, { container }, service, { useWidgetAPI } -### Community 742 - "Community 742" +### Community 743 - "Community 743" Cohesion: 0.33 Nodes (5): Component(), technitiumDefaultFields, { container }, service, { useWidgetAPI } -### Community 743 - "Community 743" +### Community 744 - "Community 744" Cohesion: 0.29 Nodes (7): evcc, battery_soc, charge_power, grid_power, home_power, kilowatt, pv_power -### Community 744 - "Community 744" -Cohesion: 0.29 -Nodes (7): qnap, cpuUsage, invalid, memUsage, poolUsage, systemTempC, volumeUsage - ### Community 745 - "Community 745" Cohesion: 0.29 -Nodes (7): kopia, failed, lastrun, nextrun, size, scrutiny, passed +Nodes (7): qnap, cpuUsage, invalid, memUsage, poolUsage, systemTempC, volumeUsage ### Community 746 - "Community 746" Cohesion: 0.29 @@ -4591,16 +4584,16 @@ Cohesion: 0.29 Nodes (7): qnap, cpuUsage, invalid, memUsage, poolUsage, systemTempC, volumeUsage ### Community 768 - "Community 768" +Cohesion: 0.29 +Nodes (6): { container }, events, { EventStub, compareDateTimezoneStub }, renderedEvents, service, showDate + +### Community 769 - "Community 769" Cohesion: 0.43 Nodes (5): slugify(), slugifyAndEncode(), Tab(), btn, setActiveTab -### Community 769 - "Community 769" -Cohesion: 0.29 -Nodes (6): errSpy, exitSpy, { fs, yaml }, infoSpy, result, warnSpy - ### Community 770 - "Community 770" Cohesion: 0.29 -Nodes (6): getCurrentPosition, query, { useSWR }, { cachedRequest }, req, res +Nodes (6): errSpy, exitSpy, { fs, yaml }, infoSpy, result, warnSpy ### Community 771 - "Community 771" Cohesion: 0.29 @@ -5300,7 +5293,7 @@ Nodes (6): prowlarr, enableIndexers, numberOfFailGrabs, numberOfFailQueries, num ### Community 945 - "Community 945" Cohesion: 0.33 -Nodes (6): jackett, configured, tdarr, errored, processed, saved +Nodes (6): nzbget, downloaded, rate, remaining, sabnzbd, timeleft ### Community 946 - "Community 946" Cohesion: 0.33 @@ -5327,12 +5320,12 @@ Cohesion: 0.33 Nodes (4): Component(), { container }, iframe, service ### Community 953 - "Community 953" -Cohesion: 0.40 -Nodes (4): { getKubeConfig, coreApi, logger }, req, res, { state, DockerCtor, getDockerArguments, logger } +Cohesion: 0.33 +Nodes (5): appBtn, baseService, btn, links, proxmoxBtn ### Community 954 - "Community 954" -Cohesion: 0.33 -Nodes (3): { checkAndCopyConfig, getSettings }, manifest, res +Cohesion: 0.40 +Nodes (4): { getKubeConfig, coreApi, logger }, req, res, { state, DockerCtor, getDockerArguments, logger } ### Community 955 - "Community 955" Cohesion: 0.47 @@ -5340,167 +5333,167 @@ Nodes (4): getDefaultDockerArgs(), getDockerArguments(), args, { fs, yaml, confi ### Community 956 - "Community 956" Cohesion: 0.33 -Nodes (5): cleaned, found, groups, rawGroups, { state, fs, yaml, config, Docker, dockerCfg, kubeCfg, kubeApi } +Nodes (3): { checkAndCopyConfig, getSettings }, manifest, res -### Community 958 - "Community 958" +### Community 957 - "Community 957" Cohesion: 0.33 -Nodes (6): coinmarketcap, 1day, 1hour, 30days, 7days, configure +Nodes (5): cleaned, found, groups, rawGroups, { state, fs, yaml, config, Docker, dockerCfg, kubeCfg, kubeApi } ### Community 959 - "Community 959" Cohesion: 0.33 -Nodes (6): omada, activeUser, alerts, connectedAp, connectedGateways, connectedSwitches +Nodes (6): coinmarketcap, 1day, 1hour, 30days, 7days, configure ### Community 960 - "Community 960" Cohesion: 0.33 -Nodes (6): prowlarr, enableIndexers, numberOfFailGrabs, numberOfFailQueries, numberOfGrabs, numberOfQueries +Nodes (6): omada, activeUser, alerts, connectedAp, connectedGateways, connectedSwitches ### Community 961 - "Community 961" Cohesion: 0.33 -Nodes (6): jackett, configured, tdarr, errored, processed, saved +Nodes (6): prowlarr, enableIndexers, numberOfFailGrabs, numberOfFailQueries, numberOfGrabs, numberOfQueries ### Community 962 - "Community 962" Cohesion: 0.33 -Nodes (6): coinmarketcap, 1day, 1hour, 30days, 7days, configure +Nodes (6): jackett, configured, tdarr, errored, processed, saved ### Community 963 - "Community 963" Cohesion: 0.33 -Nodes (6): omada, activeUser, alerts, connectedAp, connectedGateways, connectedSwitches +Nodes (6): coinmarketcap, 1day, 1hour, 30days, 7days, configure ### Community 964 - "Community 964" Cohesion: 0.33 -Nodes (6): prowlarr, enableIndexers, numberOfFailGrabs, numberOfFailQueries, numberOfGrabs, numberOfQueries +Nodes (6): omada, activeUser, alerts, connectedAp, connectedGateways, connectedSwitches ### Community 965 - "Community 965" Cohesion: 0.33 -Nodes (6): jackett, configured, tdarr, errored, processed, saved +Nodes (6): prowlarr, enableIndexers, numberOfFailGrabs, numberOfFailQueries, numberOfGrabs, numberOfQueries ### Community 966 - "Community 966" Cohesion: 0.33 -Nodes (6): coinmarketcap, 1day, 1hour, 30days, 7days, configure +Nodes (6): jackett, configured, tdarr, errored, processed, saved ### Community 967 - "Community 967" Cohesion: 0.33 -Nodes (6): omada, activeUser, alerts, connectedAp, connectedGateways, connectedSwitches +Nodes (6): coinmarketcap, 1day, 1hour, 30days, 7days, configure ### Community 968 - "Community 968" Cohesion: 0.33 -Nodes (6): prowlarr, enableIndexers, numberOfFailGrabs, numberOfFailQueries, numberOfGrabs, numberOfQueries +Nodes (6): omada, activeUser, alerts, connectedAp, connectedGateways, connectedSwitches ### Community 969 - "Community 969" Cohesion: 0.33 -Nodes (6): jackett, configured, tdarr, errored, processed, saved +Nodes (6): prowlarr, enableIndexers, numberOfFailGrabs, numberOfFailQueries, numberOfGrabs, numberOfQueries ### Community 970 - "Community 970" Cohesion: 0.33 -Nodes (3): { container }, setTheme, toggles +Nodes (6): jackett, configured, tdarr, errored, processed, saved ### Community 971 - "Community 971" Cohesion: 0.33 -Nodes (6): coinmarketcap, 1day, 1hour, 30days, 7days, configure +Nodes (3): { container }, setTheme, toggles ### Community 972 - "Community 972" Cohesion: 0.33 -Nodes (6): omada, activeUser, alerts, connectedAp, connectedGateways, connectedSwitches +Nodes (6): coinmarketcap, 1day, 1hour, 30days, 7days, configure ### Community 973 - "Community 973" Cohesion: 0.33 -Nodes (6): prowlarr, enableIndexers, numberOfFailGrabs, numberOfFailQueries, numberOfGrabs, numberOfQueries +Nodes (6): omada, activeUser, alerts, connectedAp, connectedGateways, connectedSwitches ### Community 974 - "Community 974" Cohesion: 0.33 -Nodes (6): jackett, configured, tdarr, errored, processed, saved +Nodes (6): prowlarr, enableIndexers, numberOfFailGrabs, numberOfFailQueries, numberOfGrabs, numberOfQueries ### Community 975 - "Community 975" Cohesion: 0.33 -Nodes (6): coinmarketcap, 1day, 1hour, 30days, 7days, configure +Nodes (6): jackett, configured, tdarr, errored, processed, saved ### Community 976 - "Community 976" Cohesion: 0.33 -Nodes (6): omada, activeUser, alerts, connectedAp, connectedGateways, connectedSwitches +Nodes (6): coinmarketcap, 1day, 1hour, 30days, 7days, configure ### Community 977 - "Community 977" Cohesion: 0.33 -Nodes (6): prowlarr, enableIndexers, numberOfFailGrabs, numberOfFailQueries, numberOfGrabs, numberOfQueries +Nodes (6): omada, activeUser, alerts, connectedAp, connectedGateways, connectedSwitches ### Community 978 - "Community 978" Cohesion: 0.33 -Nodes (6): jackett, configured, tdarr, errored, processed, saved +Nodes (6): prowlarr, enableIndexers, numberOfFailGrabs, numberOfFailQueries, numberOfGrabs, numberOfQueries ### Community 979 - "Community 979" Cohesion: 0.33 -Nodes (6): coinmarketcap, 1day, 1hour, 30days, 7days, configure +Nodes (6): jackett, configured, tdarr, errored, processed, saved ### Community 980 - "Community 980" Cohesion: 0.33 -Nodes (6): omada, activeUser, alerts, connectedAp, connectedGateways, connectedSwitches +Nodes (6): coinmarketcap, 1day, 1hour, 30days, 7days, configure ### Community 981 - "Community 981" Cohesion: 0.33 -Nodes (6): prowlarr, enableIndexers, numberOfFailGrabs, numberOfFailQueries, numberOfGrabs, numberOfQueries +Nodes (6): omada, activeUser, alerts, connectedAp, connectedGateways, connectedSwitches ### Community 982 - "Community 982" Cohesion: 0.33 -Nodes (6): jackett, configured, tdarr, errored, processed, saved +Nodes (6): prowlarr, enableIndexers, numberOfFailGrabs, numberOfFailQueries, numberOfGrabs, numberOfQueries ### Community 983 - "Community 983" Cohesion: 0.33 -Nodes (6): coinmarketcap, 1day, 1hour, 30days, 7days, configure +Nodes (6): jackett, configured, tdarr, errored, processed, saved ### Community 984 - "Community 984" Cohesion: 0.33 -Nodes (6): omada, activeUser, alerts, connectedAp, connectedGateways, connectedSwitches +Nodes (6): coinmarketcap, 1day, 1hour, 30days, 7days, configure ### Community 985 - "Community 985" Cohesion: 0.33 -Nodes (6): prowlarr, enableIndexers, numberOfFailGrabs, numberOfFailQueries, numberOfGrabs, numberOfQueries +Nodes (6): omada, activeUser, alerts, connectedAp, connectedGateways, connectedSwitches ### Community 986 - "Community 986" Cohesion: 0.33 -Nodes (6): jackett, configured, tdarr, errored, processed, saved +Nodes (6): prowlarr, enableIndexers, numberOfFailGrabs, numberOfFailQueries, numberOfGrabs, numberOfQueries ### Community 987 - "Community 987" Cohesion: 0.33 -Nodes (6): coinmarketcap, 1day, 1hour, 30days, 7days, configure +Nodes (6): jackett, configured, tdarr, errored, processed, saved ### Community 988 - "Community 988" Cohesion: 0.33 -Nodes (6): omada, activeUser, alerts, connectedAp, connectedGateways, connectedSwitches +Nodes (6): coinmarketcap, 1day, 1hour, 30days, 7days, configure ### Community 989 - "Community 989" Cohesion: 0.33 -Nodes (6): prowlarr, enableIndexers, numberOfFailGrabs, numberOfFailQueries, numberOfGrabs, numberOfQueries +Nodes (6): omada, activeUser, alerts, connectedAp, connectedGateways, connectedSwitches ### Community 990 - "Community 990" Cohesion: 0.33 -Nodes (6): jackett, configured, tdarr, errored, processed, saved +Nodes (6): prowlarr, enableIndexers, numberOfFailGrabs, numberOfFailQueries, numberOfGrabs, numberOfQueries ### Community 991 - "Community 991" Cohesion: 0.33 -Nodes (6): coinmarketcap, 1day, 1hour, 30days, 7days, configure +Nodes (6): jackett, configured, tdarr, errored, processed, saved ### Community 992 - "Community 992" Cohesion: 0.33 -Nodes (6): omada, activeUser, alerts, connectedAp, connectedGateways, connectedSwitches +Nodes (6): coinmarketcap, 1day, 1hour, 30days, 7days, configure ### Community 993 - "Community 993" Cohesion: 0.33 -Nodes (6): prowlarr, enableIndexers, numberOfFailGrabs, numberOfFailQueries, numberOfGrabs, numberOfQueries +Nodes (6): omada, activeUser, alerts, connectedAp, connectedGateways, connectedSwitches ### Community 994 - "Community 994" Cohesion: 0.33 -Nodes (6): jackett, configured, tdarr, errored, processed, saved +Nodes (6): prowlarr, enableIndexers, numberOfFailGrabs, numberOfFailQueries, numberOfGrabs, numberOfQueries ### Community 995 - "Community 995" -Cohesion: 0.40 -Nodes (5): channelsdvrserver, passes, recordings, scheduled, shows +Cohesion: 0.33 +Nodes (6): jackett, configured, tdarr, errored, processed, saved ### Community 996 - "Community 996" Cohesion: 0.40 -Nodes (5): strelaysrv, dataRelayed, numActiveSessions, numConnections, transferRate +Nodes (5): channelsdvrserver, passes, recordings, scheduled, shows ### Community 997 - "Community 997" Cohesion: 0.40 -Nodes (4): { httpProxy, getServiceWidget, cache, logger }, loginCalls, req, res +Nodes (5): strelaysrv, dataRelayed, numActiveSessions, numConnections, transferRate ### Community 998 - "Community 998" Cohesion: 0.40 @@ -6178,102 +6171,106 @@ Nodes (5): channelsdvrserver, passes, recordings, scheduled, shows Cohesion: 0.40 Nodes (5): strelaysrv, dataRelayed, numActiveSessions, numConnections, transferRate -### Community 1172 - "Community 1172" +### Community 1171 - "Community 1171" Cohesion: 0.60 Nodes (3): get(), set(), obj -### Community 1173 - "Community 1173" +### Community 1172 - "Community 1172" Cohesion: 0.50 Nodes (4): DeployComponent(), formatTime(), STATUS_COLORS, STATUS_LABELS -### Community 1176 - "Community 1176" +### Community 1175 - "Community 1175" Cohesion: 0.40 Nodes (5): channelsdvrserver, passes, recordings, scheduled, shows +### Community 1176 - "Community 1176" +Cohesion: 0.40 +Nodes (5): strelaysrv, dataRelayed, numActiveSessions, numConnections, transferRate + ### Community 1177 - "Community 1177" Cohesion: 0.40 -Nodes (5): strelaysrv, dataRelayed, numActiveSessions, numConnections, transferRate +Nodes (5): channelsdvrserver, passes, recordings, scheduled, shows ### Community 1178 - "Community 1178" Cohesion: 0.40 -Nodes (5): channelsdvrserver, passes, recordings, scheduled, shows +Nodes (5): strelaysrv, dataRelayed, numActiveSessions, numConnections, transferRate ### Community 1179 - "Community 1179" Cohesion: 0.40 -Nodes (5): strelaysrv, dataRelayed, numActiveSessions, numConnections, transferRate +Nodes (5): channelsdvrserver, passes, recordings, scheduled, shows ### Community 1180 - "Community 1180" Cohesion: 0.40 -Nodes (5): channelsdvrserver, passes, recordings, scheduled, shows +Nodes (5): strelaysrv, dataRelayed, numActiveSessions, numConnections, transferRate ### Community 1181 - "Community 1181" Cohesion: 0.40 -Nodes (5): strelaysrv, dataRelayed, numActiveSessions, numConnections, transferRate +Nodes (5): channelsdvrserver, passes, recordings, scheduled, shows ### Community 1182 - "Community 1182" Cohesion: 0.40 -Nodes (5): channelsdvrserver, passes, recordings, scheduled, shows +Nodes (5): strelaysrv, dataRelayed, numActiveSessions, numConnections, transferRate ### Community 1183 - "Community 1183" Cohesion: 0.40 -Nodes (5): strelaysrv, dataRelayed, numActiveSessions, numConnections, transferRate +Nodes (5): channelsdvrserver, passes, recordings, scheduled, shows ### Community 1184 - "Community 1184" Cohesion: 0.40 -Nodes (5): channelsdvrserver, passes, recordings, scheduled, shows +Nodes (5): strelaysrv, dataRelayed, numActiveSessions, numConnections, transferRate ### Community 1185 - "Community 1185" Cohesion: 0.40 -Nodes (5): strelaysrv, dataRelayed, numActiveSessions, numConnections, transferRate +Nodes (5): channelsdvrserver, passes, recordings, scheduled, shows ### Community 1186 - "Community 1186" Cohesion: 0.40 -Nodes (5): channelsdvrserver, passes, recordings, scheduled, shows +Nodes (5): strelaysrv, dataRelayed, numActiveSessions, numConnections, transferRate ### Community 1187 - "Community 1187" Cohesion: 0.40 -Nodes (5): strelaysrv, dataRelayed, numActiveSessions, numConnections, transferRate +Nodes (3): { kc, coreApi, metricsApi, getKubeConfig, parseCpu, parseMemory, logger }, req, res ### Community 1188 - "Community 1188" Cohesion: 0.40 -Nodes (3): { kc, coreApi, metricsApi, getKubeConfig, parseCpu, parseMemory, logger }, req, res +Nodes (5): channelsdvrserver, passes, recordings, scheduled, shows ### Community 1189 - "Community 1189" Cohesion: 0.40 -Nodes (5): channelsdvrserver, passes, recordings, scheduled, shows +Nodes (5): strelaysrv, dataRelayed, numActiveSessions, numConnections, transferRate ### Community 1190 - "Community 1190" Cohesion: 0.40 -Nodes (5): strelaysrv, dataRelayed, numActiveSessions, numConnections, transferRate +Nodes (5): channelsdvrserver, passes, recordings, scheduled, shows ### Community 1191 - "Community 1191" Cohesion: 0.40 -Nodes (5): channelsdvrserver, passes, recordings, scheduled, shows +Nodes (5): strelaysrv, dataRelayed, numActiveSessions, numConnections, transferRate ### Community 1192 - "Community 1192" Cohesion: 0.40 -Nodes (5): strelaysrv, dataRelayed, numActiveSessions, numConnections, transferRate +Nodes (5): channelsdvrserver, passes, recordings, scheduled, shows ### Community 1193 - "Community 1193" Cohesion: 0.40 -Nodes (5): channelsdvrserver, passes, recordings, scheduled, shows - -### Community 1194 - "Community 1194" -Cohesion: 0.40 Nodes (5): strelaysrv, dataRelayed, numActiveSessions, numConnections, transferRate -### Community 1195 - "Community 1195" +### Community 1194 - "Community 1194" Cohesion: 0.50 Nodes (4): caddy, requests, requests_failed, upstreams -### Community 1196 - "Community 1196" +### Community 1195 - "Community 1195" Cohesion: 0.50 Nodes (4): gotify, apps, clients, messages -### Community 1197 - "Community 1197" +### Community 1196 - "Community 1196" Cohesion: 0.50 Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated +### Community 1197 - "Community 1197" +Cohesion: 0.50 +Nodes (3): { httpProxy, getServiceWidget, logger }, req, res + ### Community 1198 - "Community 1198" Cohesion: 0.50 Nodes (3): { httpProxy, getServiceWidget, logger }, req, res @@ -6284,7 +6281,7 @@ Nodes (3): { httpProxy, getServiceWidget, logger }, req, res ### Community 1200 - "Community 1200" Cohesion: 0.50 -Nodes (3): { httpProxy, getServiceWidget, logger }, req, res +Nodes (3): { httpProxy, getServiceWidget, cache, logger }, req, res ### Community 1201 - "Community 1201" Cohesion: 0.50 @@ -6296,67 +6293,67 @@ Nodes (3): { httpProxy, getServiceWidget, cache, logger }, req, res ### Community 1203 - "Community 1203" Cohesion: 0.50 -Nodes (3): { httpProxy, getServiceWidget, cache, logger }, req, res +Nodes (3): { httpProxy, getServiceWidget, logger }, req, res ### Community 1204 - "Community 1204" Cohesion: 0.50 -Nodes (3): { httpProxy, getServiceWidget, logger }, req, res - -### Community 1205 - "Community 1205" -Cohesion: 0.50 Nodes (3): { bookmarksResponse }, req, res -### Community 1206 - "Community 1206" +### Community 1205 - "Community 1205" Cohesion: 0.67 Nodes (3): configs, handler(), hash() -### Community 1207 - "Community 1207" +### Community 1206 - "Community 1206" Cohesion: 0.50 Nodes (3): { getServiceItem, httpProxy, perf, logger }, req, res -### Community 1208 - "Community 1208" +### Community 1207 - "Community 1207" Cohesion: 0.50 Nodes (4): caddy, requests, requests_failed, upstreams +### Community 1208 - "Community 1208" +Cohesion: 0.50 +Nodes (4): gotify, apps, clients, messages + ### Community 1209 - "Community 1209" Cohesion: 0.50 -Nodes (4): mastodon, domain_count, status_count, user_count +Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated ### Community 1210 - "Community 1210" Cohesion: 0.50 -Nodes (4): traefik, middleware, routers, services +Nodes (4): caddy, requests, requests_failed, upstreams ### Community 1211 - "Community 1211" Cohesion: 0.50 -Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated +Nodes (4): gotify, apps, clients, messages ### Community 1212 - "Community 1212" Cohesion: 0.50 -Nodes (4): caddy, requests, requests_failed, upstreams +Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated ### Community 1213 - "Community 1213" Cohesion: 0.50 -Nodes (4): mastodon, domain_count, status_count, user_count +Nodes (4): caddy, requests, requests_failed, upstreams ### Community 1214 - "Community 1214" Cohesion: 0.50 -Nodes (4): traefik, middleware, routers, services +Nodes (4): mastodon, domain_count, status_count, user_count ### Community 1215 - "Community 1215" Cohesion: 0.50 -Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated +Nodes (4): traefik, middleware, routers, services ### Community 1216 - "Community 1216" Cohesion: 0.50 -Nodes (4): caddy, requests, requests_failed, upstreams +Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated ### Community 1217 - "Community 1217" Cohesion: 0.50 -Nodes (4): mastodon, domain_count, status_count, user_count +Nodes (4): caddy, requests, requests_failed, upstreams ### Community 1218 - "Community 1218" Cohesion: 0.50 -Nodes (4): traefik, middleware, routers, services +Nodes (4): gotify, apps, clients, messages ### Community 1219 - "Community 1219" Cohesion: 0.50 @@ -6384,23 +6381,23 @@ Nodes (4): gotify, apps, clients, messages ### Community 1225 - "Community 1225" Cohesion: 0.50 -Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated +Nodes (4): mastodon, domain_count, status_count, user_count ### Community 1226 - "Community 1226" Cohesion: 0.50 -Nodes (4): caddy, requests, requests_failed, upstreams +Nodes (4): traefik, middleware, routers, services ### Community 1227 - "Community 1227" Cohesion: 0.50 -Nodes (4): gotify, apps, clients, messages +Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated ### Community 1228 - "Community 1228" Cohesion: 0.50 -Nodes (4): mastodon, domain_count, status_count, user_count +Nodes (4): caddy, requests, requests_failed, upstreams ### Community 1229 - "Community 1229" Cohesion: 0.50 -Nodes (4): traefik, middleware, routers, services +Nodes (4): gotify, apps, clients, messages ### Community 1230 - "Community 1230" Cohesion: 0.50 @@ -6412,39 +6409,39 @@ Nodes (4): caddy, requests, requests_failed, upstreams ### Community 1232 - "Community 1232" Cohesion: 0.50 -Nodes (4): mastodon, domain_count, status_count, user_count +Nodes (4): gotify, apps, clients, messages ### Community 1233 - "Community 1233" Cohesion: 0.50 -Nodes (4): traefik, middleware, routers, services +Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated ### Community 1234 - "Community 1234" Cohesion: 0.50 -Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated +Nodes (4): caddy, requests, requests_failed, upstreams ### Community 1235 - "Community 1235" Cohesion: 0.50 -Nodes (4): caddy, requests, requests_failed, upstreams +Nodes (4): gotify, apps, clients, messages ### Community 1236 - "Community 1236" Cohesion: 0.50 -Nodes (4): gotify, apps, clients, messages +Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated ### Community 1237 - "Community 1237" Cohesion: 0.50 -Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated +Nodes (4): caddy, requests, requests_failed, upstreams ### Community 1238 - "Community 1238" Cohesion: 0.50 -Nodes (4): caddy, requests, requests_failed, upstreams +Nodes (4): gotify, apps, clients, messages ### Community 1239 - "Community 1239" Cohesion: 0.50 -Nodes (4): gotify, apps, clients, messages +Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated ### Community 1240 - "Community 1240" Cohesion: 0.50 -Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated +Nodes (3): compat, __dirname, __filename ### Community 1241 - "Community 1241" Cohesion: 0.50 @@ -6460,59 +6457,59 @@ Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated ### Community 1244 - "Community 1244" Cohesion: 0.50 -Nodes (3): compat, __dirname, __filename +Nodes (4): caddy, requests, requests_failed, upstreams ### Community 1245 - "Community 1245" Cohesion: 0.50 -Nodes (4): caddy, requests, requests_failed, upstreams +Nodes (4): gotify, apps, clients, messages ### Community 1246 - "Community 1246" Cohesion: 0.50 -Nodes (4): gotify, apps, clients, messages +Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated ### Community 1247 - "Community 1247" Cohesion: 0.50 -Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated +Nodes (4): caddy, requests, requests_failed, upstreams ### Community 1248 - "Community 1248" Cohesion: 0.50 -Nodes (4): caddy, requests, requests_failed, upstreams +Nodes (4): gotify, apps, clients, messages ### Community 1249 - "Community 1249" Cohesion: 0.50 -Nodes (4): mastodon, domain_count, status_count, user_count +Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated ### Community 1250 - "Community 1250" Cohesion: 0.50 -Nodes (4): traefik, middleware, routers, services +Nodes (4): caddy, requests, requests_failed, upstreams ### Community 1251 - "Community 1251" Cohesion: 0.50 -Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated +Nodes (4): mastodon, domain_count, status_count, user_count ### Community 1252 - "Community 1252" Cohesion: 0.50 -Nodes (4): caddy, requests, requests_failed, upstreams +Nodes (4): traefik, middleware, routers, services ### Community 1253 - "Community 1253" Cohesion: 0.50 -Nodes (4): gotify, apps, clients, messages +Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated ### Community 1254 - "Community 1254" Cohesion: 0.50 -Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated +Nodes (4): caddy, requests, requests_failed, upstreams ### Community 1255 - "Community 1255" Cohesion: 0.50 -Nodes (4): caddy, requests, requests_failed, upstreams +Nodes (4): gotify, apps, clients, messages ### Community 1256 - "Community 1256" Cohesion: 0.50 -Nodes (4): gotify, apps, clients, messages +Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated ### Community 1257 - "Community 1257" Cohesion: 0.50 -Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated +Nodes (3): compilerOptions, baseUrl, include ### Community 1258 - "Community 1258" Cohesion: 0.50 @@ -6528,39 +6525,39 @@ Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated ### Community 1261 - "Community 1261" Cohesion: 0.50 -Nodes (3): compilerOptions, baseUrl, include +Nodes (4): caddy, requests, requests_failed, upstreams ### Community 1262 - "Community 1262" Cohesion: 0.50 -Nodes (4): caddy, requests, requests_failed, upstreams +Nodes (4): gotify, apps, clients, messages ### Community 1263 - "Community 1263" Cohesion: 0.50 -Nodes (4): gotify, apps, clients, messages +Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated ### Community 1264 - "Community 1264" Cohesion: 0.50 -Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated +Nodes (4): caddy, requests, requests_failed, upstreams ### Community 1265 - "Community 1265" Cohesion: 0.50 -Nodes (4): caddy, requests, requests_failed, upstreams +Nodes (4): gotify, apps, clients, messages ### Community 1266 - "Community 1266" Cohesion: 0.50 -Nodes (4): gotify, apps, clients, messages +Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated ### Community 1267 - "Community 1267" Cohesion: 0.50 -Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated +Nodes (4): caddy, requests, requests_failed, upstreams ### Community 1268 - "Community 1268" Cohesion: 0.50 -Nodes (4): caddy, requests, requests_failed, upstreams +Nodes (4): mastodon, domain_count, status_count, user_count ### Community 1269 - "Community 1269" Cohesion: 0.50 -Nodes (4): gotify, apps, clients, messages +Nodes (4): traefik, middleware, routers, services ### Community 1270 - "Community 1270" Cohesion: 0.50 @@ -6584,97 +6581,89 @@ Nodes (4): caddy, requests, requests_failed, upstreams ### Community 1275 - "Community 1275" Cohesion: 0.50 -Nodes (4): mastodon, domain_count, status_count, user_count +Nodes (4): gotify, apps, clients, messages ### Community 1276 - "Community 1276" Cohesion: 0.50 -Nodes (4): traefik, middleware, routers, services +Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated ### Community 1277 - "Community 1277" Cohesion: 0.50 -Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated +Nodes (4): caddy, requests, requests_failed, upstreams ### Community 1278 - "Community 1278" Cohesion: 0.50 -Nodes (4): caddy, requests, requests_failed, upstreams +Nodes (4): gotify, apps, clients, messages ### Community 1279 - "Community 1279" Cohesion: 0.50 -Nodes (4): mastodon, domain_count, status_count, user_count +Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated ### Community 1280 - "Community 1280" Cohesion: 0.50 -Nodes (4): traefik, middleware, routers, services +Nodes (4): caddy, requests, requests_failed, upstreams ### Community 1281 - "Community 1281" Cohesion: 0.50 -Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated +Nodes (4): gotify, apps, clients, messages ### Community 1282 - "Community 1282" Cohesion: 0.50 -Nodes (4): caddy, requests, requests_failed, upstreams +Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated ### Community 1283 - "Community 1283" Cohesion: 0.50 -Nodes (4): gotify, apps, clients, messages +Nodes (4): ghostfolio, gross_percent_1y, gross_percent_max, gross_percent_today ### Community 1284 - "Community 1284" Cohesion: 0.50 -Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated +Nodes (4): gluetun, country, public_ip, region ### Community 1285 - "Community 1285" Cohesion: 0.50 -Nodes (4): caddy, requests, requests_failed, upstreams +Nodes (4): gotify, apps, clients, messages ### Community 1286 - "Community 1286" Cohesion: 0.50 -Nodes (4): gotify, apps, clients, messages +Nodes (4): mastodon, domain_count, status_count, user_count ### Community 1287 - "Community 1287" Cohesion: 0.50 -Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated +Nodes (4): prometheus, targets_down, targets_total, targets_up ### Community 1288 - "Community 1288" Cohesion: 0.50 -Nodes (4): ghostfolio, gross_percent_1y, gross_percent_max, gross_percent_today +Nodes (4): traefik, middleware, routers, services ### Community 1289 - "Community 1289" Cohesion: 0.50 -Nodes (4): gluetun, country, public_ip, region +Nodes (4): unmanic, active_workers, records_total, total_workers ### Community 1290 - "Community 1290" Cohesion: 0.50 -Nodes (4): gotify, apps, clients, messages +Nodes (4): xteve, streams_active, streams_all, streams_xepg ### Community 1291 - "Community 1291" Cohesion: 0.50 -Nodes (4): mastodon, domain_count, status_count, user_count +Nodes (4): caddy, requests, requests_failed, upstreams ### Community 1292 - "Community 1292" Cohesion: 0.50 -Nodes (4): prometheus, targets_down, targets_total, targets_up +Nodes (4): gotify, apps, clients, messages ### Community 1293 - "Community 1293" Cohesion: 0.50 -Nodes (4): traefik, middleware, routers, services +Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated ### Community 1294 - "Community 1294" Cohesion: 0.50 -Nodes (4): unmanic, active_workers, records_total, total_workers +Nodes (4): caddy, requests, requests_failed, upstreams ### Community 1295 - "Community 1295" Cohesion: 0.50 -Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated - -### Community 1296 - "Community 1296" -Cohesion: 0.50 -Nodes (4): caddy, requests, requests_failed, upstreams - -### Community 1297 - "Community 1297" -Cohesion: 0.50 Nodes (4): gotify, apps, clients, messages -### Community 1298 - "Community 1298" +### Community 1296 - "Community 1296" Cohesion: 0.50 Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated @@ -6684,91 +6673,99 @@ Nodes (4): caddy, requests, requests_failed, upstreams ### Community 1300 - "Community 1300" Cohesion: 0.50 -Nodes (4): gotify, apps, clients, messages +Nodes (4): mastodon, domain_count, status_count, user_count ### Community 1301 - "Community 1301" Cohesion: 0.50 +Nodes (4): traefik, middleware, routers, services + +### Community 1302 - "Community 1302" +Cohesion: 0.50 Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated +### Community 1303 - "Community 1303" +Cohesion: 0.50 +Nodes (3): headers, params, url + ### Community 1304 - "Community 1304" Cohesion: 0.50 Nodes (4): caddy, requests, requests_failed, upstreams ### Community 1305 - "Community 1305" Cohesion: 0.50 -Nodes (4): gotify, apps, clients, messages +Nodes (4): ghostfolio, gross_percent_1y, gross_percent_max, gross_percent_today ### Community 1306 - "Community 1306" Cohesion: 0.50 -Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated +Nodes (4): gluetun, country, public_ip, region ### Community 1307 - "Community 1307" Cohesion: 0.50 -Nodes (3): headers, params, url +Nodes (4): gotify, apps, clients, messages ### Community 1308 - "Community 1308" Cohesion: 0.50 -Nodes (4): caddy, requests, requests_failed, upstreams +Nodes (4): mastodon, domain_count, status_count, user_count ### Community 1309 - "Community 1309" Cohesion: 0.50 -Nodes (4): ghostfolio, gross_percent_1y, gross_percent_max, gross_percent_today +Nodes (4): traefik, middleware, routers, services ### Community 1310 - "Community 1310" Cohesion: 0.50 -Nodes (4): gluetun, country, public_ip, region +Nodes (4): unmanic, active_workers, records_total, total_workers ### Community 1311 - "Community 1311" Cohesion: 0.50 -Nodes (4): gotify, apps, clients, messages +Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated ### Community 1312 - "Community 1312" Cohesion: 0.50 -Nodes (4): mastodon, domain_count, status_count, user_count +Nodes (4): caddy, requests, requests_failed, upstreams ### Community 1313 - "Community 1313" Cohesion: 0.50 -Nodes (4): traefik, middleware, routers, services +Nodes (4): gotify, apps, clients, messages ### Community 1314 - "Community 1314" Cohesion: 0.50 -Nodes (4): unmanic, active_workers, records_total, total_workers +Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated ### Community 1315 - "Community 1315" Cohesion: 0.50 -Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated +Nodes (4): caddy, requests, requests_failed, upstreams ### Community 1316 - "Community 1316" Cohesion: 0.50 -Nodes (4): caddy, requests, requests_failed, upstreams +Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated ### Community 1317 - "Community 1317" Cohesion: 0.50 -Nodes (4): gotify, apps, clients, messages +Nodes (4): caddy, requests, requests_failed, upstreams ### Community 1318 - "Community 1318" Cohesion: 0.50 -Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated +Nodes (4): mastodon, domain_count, status_count, user_count ### Community 1319 - "Community 1319" Cohesion: 0.50 -Nodes (4): caddy, requests, requests_failed, upstreams +Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated ### Community 1320 - "Community 1320" Cohesion: 0.50 -Nodes (4): mastodon, domain_count, status_count, user_count +Nodes (4): caddy, requests, requests_failed, upstreams ### Community 1321 - "Community 1321" Cohesion: 0.50 -Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated +Nodes (4): gotify, apps, clients, messages ### Community 1322 - "Community 1322" Cohesion: 0.50 -Nodes (4): caddy, requests, requests_failed, upstreams +Nodes (4): mastodon, domain_count, status_count, user_count ### Community 1323 - "Community 1323" Cohesion: 0.50 -Nodes (4): mastodon, domain_count, status_count, user_count +Nodes (4): traefik, middleware, routers, services ### Community 1324 - "Community 1324" Cohesion: 0.50 @@ -6780,23 +6777,23 @@ Nodes (4): caddy, requests, requests_failed, upstreams ### Community 1326 - "Community 1326" Cohesion: 0.50 -Nodes (4): gotify, apps, clients, messages +Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated ### Community 1327 - "Community 1327" Cohesion: 0.50 -Nodes (4): mastodon, domain_count, status_count, user_count +Nodes (4): caddy, requests, requests_failed, upstreams ### Community 1328 - "Community 1328" Cohesion: 0.50 -Nodes (4): traefik, middleware, routers, services +Nodes (4): gotify, apps, clients, messages ### Community 1329 - "Community 1329" Cohesion: 0.50 -Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated +Nodes (4): mastodon, domain_count, status_count, user_count ### Community 1330 - "Community 1330" Cohesion: 0.50 -Nodes (4): caddy, requests, requests_failed, upstreams +Nodes (4): traefik, middleware, routers, services ### Community 1331 - "Community 1331" Cohesion: 0.50 @@ -6804,93 +6801,85 @@ Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated ### Community 1332 - "Community 1332" Cohesion: 0.50 -Nodes (4): caddy, requests, requests_failed, upstreams +Nodes (3): { fs, config, logger }, req, res ### Community 1333 - "Community 1333" Cohesion: 0.50 -Nodes (4): gotify, apps, clients, messages +Nodes (3): { cachedRequest, logger }, req, res ### Community 1334 - "Community 1334" Cohesion: 0.50 -Nodes (4): mastodon, domain_count, status_count, user_count +Nodes (3): { checkAndCopyConfig }, req, res ### Community 1335 - "Community 1335" Cohesion: 0.50 -Nodes (4): traefik, middleware, routers, services +Nodes (3): req, res, { widgetsResponse } ### Community 1336 - "Community 1336" Cohesion: 0.50 -Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated +Nodes (3): { getSettings, getPrivateWidgetOptions, cachedRequest }, req, res ### Community 1337 - "Community 1337" Cohesion: 0.50 -Nodes (3): { fs, config, logger }, req, res - -### Community 1338 - "Community 1338" -Cohesion: 0.50 -Nodes (3): { cachedRequest, logger }, req, res - -### Community 1339 - "Community 1339" -Cohesion: 0.50 -Nodes (3): { checkAndCopyConfig }, req, res +Nodes (3): dir, secretPath, settings ### Community 1340 - "Community 1340" Cohesion: 0.50 -Nodes (3): req, res, { widgetsResponse } +Nodes (4): caddy, requests, requests_failed, upstreams ### Community 1341 - "Community 1341" Cohesion: 0.50 -Nodes (3): { getSettings, getPrivateWidgetOptions, cachedRequest }, req, res +Nodes (4): mastodon, domain_count, status_count, user_count ### Community 1342 - "Community 1342" Cohesion: 0.50 -Nodes (3): dir, secretPath, settings +Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated + +### Community 1343 - "Community 1343" +Cohesion: 0.50 +Nodes (4): caddy, requests, requests_failed, upstreams ### Community 1344 - "Community 1344" Cohesion: 0.50 -Nodes (4): caddy, requests, requests_failed, upstreams +Nodes (4): mastodon, domain_count, status_count, user_count ### Community 1345 - "Community 1345" Cohesion: 0.50 -Nodes (4): mastodon, domain_count, status_count, user_count +Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated ### Community 1346 - "Community 1346" Cohesion: 0.50 -Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated +Nodes (4): caddy, requests, requests_failed, upstreams ### Community 1347 - "Community 1347" Cohesion: 0.50 -Nodes (4): caddy, requests, requests_failed, upstreams +Nodes (4): mastodon, domain_count, status_count, user_count ### Community 1348 - "Community 1348" Cohesion: 0.50 -Nodes (4): mastodon, domain_count, status_count, user_count +Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated ### Community 1349 - "Community 1349" Cohesion: 0.50 -Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated +Nodes (4): caddy, requests, requests_failed, upstreams ### Community 1350 - "Community 1350" Cohesion: 0.50 -Nodes (4): caddy, requests, requests_failed, upstreams +Nodes (4): mastodon, domain_count, status_count, user_count ### Community 1351 - "Community 1351" Cohesion: 0.50 -Nodes (4): mastodon, domain_count, status_count, user_count +Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated ### Community 1352 - "Community 1352" Cohesion: 0.50 -Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated +Nodes (4): caddy, requests, requests_failed, upstreams ### Community 1353 - "Community 1353" Cohesion: 0.50 -Nodes (4): caddy, requests, requests_failed, upstreams - -### Community 1354 - "Community 1354" -Cohesion: 0.50 Nodes (4): mastodon, domain_count, status_count, user_count -### Community 1355 - "Community 1355" +### Community 1354 - "Community 1354" Cohesion: 0.50 Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated @@ -6906,55 +6895,47 @@ Nodes (4): mastodon, domain_count, status_count, user_count Cohesion: 0.50 Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated -### Community 1360 - "Community 1360" +### Community 1359 - "Community 1359" Cohesion: 0.50 Nodes (4): caddy, requests, requests_failed, upstreams +### Community 1360 - "Community 1360" +Cohesion: 0.50 +Nodes (4): mastodon, domain_count, status_count, user_count + ### Community 1361 - "Community 1361" Cohesion: 0.50 -Nodes (4): mastodon, domain_count, status_count, user_count +Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated ### Community 1362 - "Community 1362" Cohesion: 0.50 -Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated +Nodes (4): caddy, requests, requests_failed, upstreams ### Community 1363 - "Community 1363" Cohesion: 0.50 -Nodes (4): caddy, requests, requests_failed, upstreams +Nodes (4): mastodon, domain_count, status_count, user_count ### Community 1364 - "Community 1364" Cohesion: 0.50 -Nodes (4): mastodon, domain_count, status_count, user_count +Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated ### Community 1365 - "Community 1365" Cohesion: 0.50 -Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated +Nodes (4): caddy, requests, requests_failed, upstreams ### Community 1366 - "Community 1366" Cohesion: 0.50 -Nodes (4): caddy, requests, requests_failed, upstreams +Nodes (4): mastodon, domain_count, status_count, user_count ### Community 1367 - "Community 1367" Cohesion: 0.50 Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated -### Community 1368 - "Community 1368" -Cohesion: 0.50 -Nodes (4): caddy, requests, requests_failed, upstreams - -### Community 1369 - "Community 1369" -Cohesion: 0.50 -Nodes (4): mastodon, domain_count, status_count, user_count - -### Community 1370 - "Community 1370" -Cohesion: 0.50 -Nodes (4): watchtower, containers_failed, containers_scanned, containers_updated - -### Community 1413 - "Community 1413" +### Community 1406 - "Community 1406" Cohesion: 0.67 Nodes (3): audiobookshelf, podcasts, podcastsDuration -### Community 1414 - "Community 1414" +### Community 1407 - "Community 1407" Cohesion: 0.67 Nodes (3): Changedetection.io Widget, diffsDetected, totalObserved @@ -6973,7 +6954,7 @@ Nodes (3): Changedetection.io Widget, diffsDetected, totalObserved ## Knowledge Gaps - **12692 isolated node(s):** `baseUrl`, `include`, `BYTE_UNITS`, `BIT_UNITS`, `BIBIT_UNITS` (+12687 more) These have ≤1 connection - possible missing edges or undocumented components. -- **110 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes. +- **106 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes. ## Suggested Questions _Questions this graph is uniquely positioned to answer:_ @@ -6988,7 +6969,7 @@ _Questions this graph is uniquely positioned to answer:_ _Edge tagged AMBIGUOUS (relation: conceptually_related_to) - confidence is low._ - **What is the exact relationship between `Image 1` and `Homepage Application`?** _Edge tagged AMBIGUOUS (relation: conceptually_related_to) - confidence is low._ -- **Why does `{ useWidgetAPI }` connect `Community 50` to `Community 1`, `Community 2`, `Community 3`, `Community 1048`, `Community 1049`, `Community 1050`, `Community 1051`, `Community 1052`, `Community 1053`, `Community 1054`, `Community 1055`, `Community 1056`, `Community 1057`, `Community 1058`, `Community 1059`, `Community 1060`, `Community 1061`, `Community 1062`, `Community 1063`, `Community 1064`, `Community 1065`, `Community 1066`, `Community 1067`, `Community 1068`, `Community 1069`, `Community 1070`, `Community 1071`, `Community 1072`, `Community 1073`, `Community 1074`, `Community 1075`, `Community 1076`, `Community 1079`, `Community 1080`, `Community 1081`, `Community 1082`, `Community 1083`, `Community 1084`, `Community 1085`, `Community 1086`, `Community 1087`, `Community 1088`, `Community 1089`, `Community 1090`, `Community 1091`, `Community 1092`, `Community 581`, `Community 1094`, `Community 1095`, `Community 1096`, `Community 1097`, `Community 1098`, `Community 1099`, `Community 1100`, `Community 1101`, `Community 1102`, `Community 1103`, `Community 1104`, `Community 1105`, `Community 1106`, `Community 1107`, `Community 1108`, `Community 1109`, `Community 598`, `Community 1111`, `Community 599`, `Community 1110`, `Community 1114`, `Community 1115`, `Community 1116`, `Community 1117`, `Community 597`, `Community 1119`, `Community 1120`, `Community 1121`, `Community 1122`, `Community 1123`, `Community 1124`, `Community 1125`, `Community 1126`, `Community 1127`, `Community 1128`, `Community 1129`, `Community 1130`, `Community 1131`, `Community 1132`, `Community 1133`, `Community 1134`, `Community 1135`, `Community 1136`, `Community 1137`, `Community 1138`, `Community 653`, `Community 162`, `Community 733`, `Community 734`, `Community 735`, `Community 736`, `Community 737`, `Community 738`, `Community 739`, `Community 740`, `Community 741`, `Community 742`, `Community 328`, `Community 331`, `Community 346`, `Community 353`, `Community 1093`, `Community 883`, `Community 884`, `Community 885`, `Community 886`, `Community 887`, `Community 888`, `Community 889`, `Community 890`, `Community 891`, `Community 892`, `Community 893`, `Community 894`, `Community 895`, `Community 896`, `Community 897`, `Community 898`, `Community 899`, `Community 900`, `Community 901`, `Community 902`, `Community 903`, `Community 904`, `Community 905`, `Community 906`, `Community 907`, `Community 908`, `Community 909`, `Community 459`, `Community 471`, `Community 1112`, `Community 1113`, `Community 482`, `Community 502`, `Community 503`, `Community 1118`?** +- **Why does `{ useWidgetAPI }` connect `Community 52` to `Community 1`, `Community 2`, `Community 3`, `Community 1048`, `Community 1049`, `Community 1050`, `Community 1051`, `Community 1052`, `Community 1053`, `Community 1054`, `Community 1055`, `Community 1056`, `Community 1057`, `Community 1058`, `Community 1059`, `Community 1060`, `Community 1061`, `Community 1062`, `Community 1063`, `Community 1064`, `Community 1065`, `Community 1066`, `Community 1067`, `Community 1068`, `Community 1069`, `Community 1070`, `Community 1071`, `Community 1072`, `Community 1073`, `Community 50`, `Community 1075`, `Community 1076`, `Community 1074`, `Community 1079`, `Community 1080`, `Community 1081`, `Community 1082`, `Community 1083`, `Community 1084`, `Community 1085`, `Community 1086`, `Community 1087`, `Community 1088`, `Community 1089`, `Community 1090`, `Community 1091`, `Community 1092`, `Community 581`, `Community 1094`, `Community 1095`, `Community 1096`, `Community 1097`, `Community 1098`, `Community 1099`, `Community 1100`, `Community 1101`, `Community 1102`, `Community 1103`, `Community 1104`, `Community 1105`, `Community 1106`, `Community 1107`, `Community 596`, `Community 597`, `Community 1109`, `Community 1111`, `Community 598`, `Community 1110`, `Community 1114`, `Community 1115`, `Community 1116`, `Community 1117`, `Community 1118`, `Community 1119`, `Community 1120`, `Community 1121`, `Community 1122`, `Community 1123`, `Community 1124`, `Community 1125`, `Community 1126`, `Community 1127`, `Community 1128`, `Community 1129`, `Community 1130`, `Community 1131`, `Community 1132`, `Community 1133`, `Community 1134`, `Community 1135`, `Community 1136`, `Community 1137`, `Community 1138`, `Community 654`, `Community 166`, `Community 734`, `Community 735`, `Community 736`, `Community 737`, `Community 738`, `Community 739`, `Community 740`, `Community 741`, `Community 742`, `Community 743`, `Community 327`, `Community 331`, `Community 346`, `Community 1093`, `Community 883`, `Community 884`, `Community 885`, `Community 886`, `Community 887`, `Community 888`, `Community 889`, `Community 890`, `Community 891`, `Community 892`, `Community 893`, `Community 894`, `Community 895`, `Community 896`, `Community 897`, `Community 898`, `Community 899`, `Community 900`, `Community 901`, `Community 902`, `Community 903`, `Community 904`, `Community 905`, `Community 906`, `Community 907`, `Community 908`, `Community 909`, `Community 1108`, `Community 457`, `Community 470`, `Community 1112`, `Community 1113`, `Community 481`, `Community 501`, `Community 502`?** _High betweenness centrality (0.011) - this node is a cross-community bridge._ -- **Why does `Service Widgets Index` connect `Community 55` to `Community 11`, `Community 131`, `Community 348`?** +- **Why does `Service Widgets Index` connect `Community 56` to `Community 11`, `Community 132`, `Community 350`?** _High betweenness centrality (0.006) - this node is a cross-community bridge._ \ No newline at end of file diff --git a/wiki/architecture/oliver-sales-ops-platform-structure.md b/wiki/architecture/oliver-sales-ops-platform-structure.md new file mode 100644 index 0000000..5295eac --- /dev/null +++ b/wiki/architecture/oliver-sales-ops-platform-structure.md @@ -0,0 +1,517 @@ +--- +tags: [architecture, graphify, oliver-sales-ops-platform] +updated: 2026-05-18 +--- + +# Graph Report - /Users/ai_leed/Documents/Projects/Oliver/oliver-sales-ops-platform (2026-05-18) + +## Corpus Check +- cluster-only mode — file stats not available + +## Summary +- 1358 nodes · 1907 edges · 125 communities (98 shown, 27 thin omitted) +- Extraction: 93% EXTRACTED · 7% INFERRED · 0% AMBIGUOUS · INFERRED: 127 edges (avg confidence: 0.75) +- Token cost: 0 input · 0 output + +## Graph Freshness +- Built from commit: `54eddd70` +- Run `git rev-parse HEAD` and compare to check if the graph is stale. +- Run `graphify update .` after code changes (no API cost). + +## Community Hubs (Navigation) +- [[_COMMUNITY_Community 0|Community 0]] +- [[_COMMUNITY_Community 1|Community 1]] +- [[_COMMUNITY_Community 2|Community 2]] +- [[_COMMUNITY_Community 3|Community 3]] +- [[_COMMUNITY_Community 4|Community 4]] +- [[_COMMUNITY_Community 5|Community 5]] +- [[_COMMUNITY_Community 6|Community 6]] +- [[_COMMUNITY_Community 7|Community 7]] +- [[_COMMUNITY_Community 8|Community 8]] +- [[_COMMUNITY_Community 9|Community 9]] +- [[_COMMUNITY_Community 10|Community 10]] +- [[_COMMUNITY_Community 11|Community 11]] +- [[_COMMUNITY_Community 12|Community 12]] +- [[_COMMUNITY_Community 13|Community 13]] +- [[_COMMUNITY_Community 14|Community 14]] +- [[_COMMUNITY_Community 15|Community 15]] +- [[_COMMUNITY_Community 16|Community 16]] +- [[_COMMUNITY_Community 17|Community 17]] +- [[_COMMUNITY_Community 18|Community 18]] +- [[_COMMUNITY_Community 19|Community 19]] +- [[_COMMUNITY_Community 20|Community 20]] +- [[_COMMUNITY_Community 21|Community 21]] +- [[_COMMUNITY_Community 22|Community 22]] +- [[_COMMUNITY_Community 23|Community 23]] +- [[_COMMUNITY_Community 24|Community 24]] +- [[_COMMUNITY_Community 25|Community 25]] +- [[_COMMUNITY_Community 26|Community 26]] +- [[_COMMUNITY_Community 27|Community 27]] +- [[_COMMUNITY_Community 28|Community 28]] +- [[_COMMUNITY_Community 29|Community 29]] +- [[_COMMUNITY_Community 30|Community 30]] +- [[_COMMUNITY_Community 31|Community 31]] +- [[_COMMUNITY_Community 32|Community 32]] +- [[_COMMUNITY_Community 33|Community 33]] +- [[_COMMUNITY_Community 34|Community 34]] +- [[_COMMUNITY_Community 35|Community 35]] +- [[_COMMUNITY_Community 36|Community 36]] +- [[_COMMUNITY_Community 37|Community 37]] +- [[_COMMUNITY_Community 38|Community 38]] +- [[_COMMUNITY_Community 39|Community 39]] +- [[_COMMUNITY_Community 40|Community 40]] +- [[_COMMUNITY_Community 41|Community 41]] +- [[_COMMUNITY_Community 42|Community 42]] +- [[_COMMUNITY_Community 43|Community 43]] +- [[_COMMUNITY_Community 44|Community 44]] +- [[_COMMUNITY_Community 45|Community 45]] +- [[_COMMUNITY_Community 46|Community 46]] +- [[_COMMUNITY_Community 47|Community 47]] +- [[_COMMUNITY_Community 48|Community 48]] +- [[_COMMUNITY_Community 49|Community 49]] +- [[_COMMUNITY_Community 50|Community 50]] +- [[_COMMUNITY_Community 51|Community 51]] +- [[_COMMUNITY_Community 52|Community 52]] +- [[_COMMUNITY_Community 53|Community 53]] +- [[_COMMUNITY_Community 54|Community 54]] +- [[_COMMUNITY_Community 55|Community 55]] +- [[_COMMUNITY_Community 56|Community 56]] +- [[_COMMUNITY_Community 57|Community 57]] +- [[_COMMUNITY_Community 58|Community 58]] +- [[_COMMUNITY_Community 59|Community 59]] +- [[_COMMUNITY_Community 60|Community 60]] +- [[_COMMUNITY_Community 61|Community 61]] +- [[_COMMUNITY_Community 62|Community 62]] +- [[_COMMUNITY_Community 63|Community 63]] +- [[_COMMUNITY_Community 64|Community 64]] +- [[_COMMUNITY_Community 65|Community 65]] +- [[_COMMUNITY_Community 66|Community 66]] +- [[_COMMUNITY_Community 67|Community 67]] +- [[_COMMUNITY_Community 68|Community 68]] +- [[_COMMUNITY_Community 69|Community 69]] +- [[_COMMUNITY_Community 70|Community 70]] +- [[_COMMUNITY_Community 71|Community 71]] +- [[_COMMUNITY_Community 72|Community 72]] +- [[_COMMUNITY_Community 73|Community 73]] +- [[_COMMUNITY_Community 74|Community 74]] +- [[_COMMUNITY_Community 75|Community 75]] +- [[_COMMUNITY_Community 76|Community 76]] +- [[_COMMUNITY_Community 77|Community 77]] +- [[_COMMUNITY_Community 78|Community 78]] +- [[_COMMUNITY_Community 79|Community 79]] +- [[_COMMUNITY_Community 80|Community 80]] +- [[_COMMUNITY_Community 81|Community 81]] +- [[_COMMUNITY_Community 82|Community 82]] +- [[_COMMUNITY_Community 83|Community 83]] +- [[_COMMUNITY_Community 84|Community 84]] +- [[_COMMUNITY_Community 85|Community 85]] +- [[_COMMUNITY_Community 88|Community 88]] +- [[_COMMUNITY_Community 89|Community 89]] +- [[_COMMUNITY_Community 90|Community 90]] +- [[_COMMUNITY_Community 91|Community 91]] +- [[_COMMUNITY_Community 92|Community 92]] +- [[_COMMUNITY_Community 93|Community 93]] +- [[_COMMUNITY_Community 94|Community 94]] +- [[_COMMUNITY_Community 99|Community 99]] +- [[_COMMUNITY_Community 100|Community 100]] +- [[_COMMUNITY_Community 101|Community 101]] +- [[_COMMUNITY_Community 102|Community 102]] +- [[_COMMUNITY_Community 103|Community 103]] +- [[_COMMUNITY_Community 112|Community 112]] +- [[_COMMUNITY_Community 113|Community 113]] +- [[_COMMUNITY_Community 114|Community 114]] +- [[_COMMUNITY_Community 115|Community 115]] +- [[_COMMUNITY_Community 116|Community 116]] +- [[_COMMUNITY_Community 117|Community 117]] +- [[_COMMUNITY_Community 118|Community 118]] +- [[_COMMUNITY_Community 119|Community 119]] +- [[_COMMUNITY_Community 120|Community 120]] +- [[_COMMUNITY_Community 121|Community 121]] +- [[_COMMUNITY_Community 122|Community 122]] +- [[_COMMUNITY_Community 123|Community 123]] +- [[_COMMUNITY_Community 124|Community 124]] + +## God Nodes (most connected - your core abstractions) +1. `Opportunity` - 40 edges +2. `Stage2Diagnose()` - 33 edges +3. `StageApprovals()` - 31 edges +4. `Notification` - 30 edges +5. `Stage3Qualify()` - 30 edges +6. `Stage16Delivery()` - 29 edges +7. `Stage6Normalize()` - 29 edges +8. `Stage7Match()` - 27 edges +9. `Base` - 27 edges +10. `OLIVER Sales Operations Platform` - 27 edges + +## Surprising Connections (you probably didn't know these) +- `Stage 13 — Support Docs Agent` --calls--> `useStageArtifacts()` [EXTRACTED] + docs/project/api_spec.md → frontend/src/api/opportunities.ts +- `Build ratecards from confirmed matches (Stage 8). Ported from V1's ratecard_bui` --rationale_for--> `Ratecard Builder (Stage 8)` [EXTRACTED] + backend/app/services/ratecard_builder.py → README.md +- `Approval workflow — request approvals and record decisions. Requesting an appro` --rationale_for--> `Approval Service` [EXTRACTED] + backend/app/services/approval_service.py → AGENTS.md +- `Allowed Users Config (YAML)` --conceptually_related_to--> `SSO Authentication` [INFERRED] + config/allowed_users.yaml → docs/README.md +- `SQLAlchemy 2.0.36 (asyncio)` --references--> `FastAPI Backend` [INFERRED] + backend/requirements.txt → README.md + +## Communities (125 total, 27 thin omitted) + +### Community 0 - "Community 0" +Cohesion: 0.05 +Nodes (60): complete_stage(), create_opportunity(), delete_file(), delete_opportunity(), download_pitch_deck_markdown(), download_pitch_outline_markdown(), downloadQAPack(), get_efficiency_profile() (+52 more) + +### Community 1 - "Community 1" +Cohesion: 0.06 +Nodes (59): allowed_users.yaml Allowlist, API Specification — OLIVER Sales Ops Platform, ADR: Claude Tool-Use Pattern for All Agents, 17-Stage State Machine, Alembic Migrations, Anthropic Claude API, Apache Reverse Proxy, Approvals Workflow (Gated Stages 3, 14) (+51 more) + +### Community 2 - "Community 2" +Cohesion: 0.05 +Nodes (43): assetsKeys, useBuildRatecard(), useClientAssets(), useCreateAsset(), useDeleteAsset(), useKickOffMatching(), useMatches(), useRatecard() (+35 more) + +### Community 3 - "Community 3" +Cohesion: 0.05 +Nodes (36): useCreateOpportunity(), UserMenu(), AgentDetail, badgeStyle, cardStyle, cascadeNoteStyle, chevronStyle, codeStyle (+28 more) + +### Community 4 - "Community 4" +Cohesion: 0.05 +Nodes (34): useClarifications(), useUpdateClarification(), badgeStyle, cardStyle, emptyCalloutStyle, emptyStyle, hintStyle, listStyle (+26 more) + +### Community 5 - "Community 5" +Cohesion: 0.08 +Nodes (21): list_my_notifications(), mark_read(), In-app notification endpoints., _to_out(), bellBtnStyle, bellIconStyle, bodyStyle, dotStyle (+13 more) + +### Community 6 - "Community 6" +Cohesion: 0.07 +Nodes (27): useQualification(), useSaveQualification(), badgeStyle, cardStyle, dimHeaderStyle, dimLetterStyle, dimRowStyle, errorStyle (+19 more) + +### Community 7 - "Community 7" +Cohesion: 0.16 +Nodes (23): _custom_opp(), _has_creative_role(), _opportunity_payload(), _pick_gmal_for_model(), Stage 11 — team shape (FTE per role) coverage. Team shape is pure-Python (no Cl, Same pattern as test_ratecard.py — return a GMAL with at least `min_rows` Gm, The first GMAL (id=1) is known to have a Creative-discipline role; the disci, An opportunity with no RatecardLine rows should return an empty roles list a (+15 more) + +### Community 8 - "Community 8" +Cohesion: 0.12 +Nodes (22): useDeleteFile(), useFiles(), useRunDiagnosis(), useRunIntake(), useStageArtifacts(), useUploadFiles(), advancePromptStyle, dropZoneStyle (+14 more) + +### Community 9 - "Community 9" +Cohesion: 0.08 +Nodes (24): badgeStyle, commentStyle, containerStyle, emptyStyle, errorStyle, formStyle, headerStyle, hintStyle (+16 more) + +### Community 10 - "Community 10" +Cohesion: 0.09 +Nodes (23): activeStyle, awaitingStyle, completedStyle, containerStyle, gateBadge, gatedStyle, iconStyle, inProgressStyle (+15 more) + +### Community 11 - "Community 11" +Cohesion: 0.08 +Nodes (23): dependencies, axios, @azure/msal-browser, @azure/msal-react, lucide-react, mermaid, react, react-dom (+15 more) + +### Community 12 - "Community 12" +Cohesion: 0.08 +Nodes (22): badgeStyle, cardLabelStyle, cardStyle, chipStyle, emptyHintStyle, errorStyle, hintStyle, pillStyle (+14 more) + +### Community 13 - "Community 13" +Cohesion: 0.14 +Nodes (19): _pick_gmal_with_hour_routes(), Stage 7 — AI matching coverage. The real `/match` call hits Anthropic and costs, Return the lowest-id GMAL asset that has hour routes. The matching agent onl, Kicking off matching on an opportunity with zero ClientAssets is a 400., Seed 1 ClientAsset + 2 Match rows (one selected) and verify GET /matches sur, is_selected=true on a match should deselect any other selected matches for t, is_selected=false on a match should deselect just that match, leaving any ot, A match belonging to opportunity A cannot be toggled via opportunity B's URL (+11 more) + +### Community 14 - "Community 14" +Cohesion: 0.14 +Nodes (23): Stage 3 — TROWLS qualification scorecard coverage. Exercises POST /opportunitie, All 6s → total=36, pct=60, recommendation='proceed' (>=60 boundary)., A dimension >10 must be rejected by Pydantic (Field(ge=0, le=10))., A dimension <0 must be rejected (relationship = -1)., All six TROWLS dimensions are required — omitting one is 422., A fresh opportunity has no scorecard → returns JSON null., Round-trip POST → GET returns the same shape with the same artifact_id; savi, Build a TROWLSScores payload. (+15 more) + +### Community 15 - "Community 15" +Cohesion: 0.09 +Nodes (21): cardStyle, chipBtnActiveStyle, chipBtnStyle, EfficiencyProfileContent, EfficiencyProfileWrapper, emptyStyle, errorStyle, ghostBtnStyle (+13 more) + +### Community 16 - "Community 16" +Cohesion: 0.12 +Nodes (19): _minimal_diagnosis_content(), Stages 9 / 12 / 13 — `_run_simple_agent` semantics. These three endpoints (`/de, Round-trip the Delivery Model agent. Precondition: a Stage 2 brief_diagnosi, POST /capability-gaps with no Stage 2 diagnosis on file returns 400., After running, artifact_type 'capability_gaps' should appear on GET /stages/, POST /support-docs with no Stage 2 diagnosis on file returns 400. Stage 13, After running, artifact_type 'support_docs' should appear on GET /stages/13/, Stage 13 should NOT 400 when Stage 9 / 12 artifacts are missing — only Stage (+11 more) + +### Community 17 - "Community 17" +Cohesion: 0.09 +Nodes (21): cardStyle, DEAL_STATUS_OPTIONS, emptyStyle, errorStyle, hintStyle, itemStyle, listStyle, metaLabelStyle (+13 more) + +### Community 18 - "Community 18" +Cohesion: 0.15 +Nodes (22): Architecture Documentation, Runbook Documentation, Asset Normalizer (Stage 6), Capability Gap Agent (Stage 12), Claude (Anthropic AI), Delivery Model Agent (Stage 9), Diagnosis Agent (Stage 2), GMAL Scope Builder V1 (+14 more) + +### Community 19 - "Community 19" +Cohesion: 0.18 +Nodes (19): _count_hour_rows(), _custom_opp(), _opportunity_payload(), _pick_gmal_for_model(), Stage 8 — Ratecard build coverage. Ratecard building is pure-Python (no Claude), Create+yield+delete a fresh opportunity with the given model_type. The shar, Building a ratecard on an opp with zero ClientAssets is a 400., End-to-end Stage 8: seed 1 ClientAsset (volume=100) + selected Match, POST / (+11 more) + +### Community 20 - "Community 20" +Cohesion: 0.10 +Nodes (19): cardStyle, dataCalloutStyle, emptyStyle, errorStyle, hintStyle, PitchOutline, PitchSlide, primaryBtnStyle (+11 more) + +### Community 21 - "Community 21" +Cohesion: 0.12 +Nodes (20): deploy.sh Deployment Script, DEV_AUTH_BYPASS Configuration, Docker Backend Service, Docker DB Service (postgres:16-alpine), Docker Frontend Service (dev profile), Docker Redis Service (redis:7-alpine), Azure SSO (MSAL), FastAPI Backend (+12 more) + +### Community 22 - "Community 22" +Cohesion: 0.11 +Nodes (18): compilerOptions, allowImportingTsExtensions, isolatedModules, jsx, lib, module, moduleResolution, noEmit (+10 more) + +### Community 23 - "Community 23" +Cohesion: 0.15 +Nodes (17): _get_opp(), kick_off_match(), list_matches(), _match_to_out(), Stage 7 — match client assets to GMAL catalog., Mark a match as the chosen one for its client asset. When `is_selected=True, Background task: open a fresh session, run the match agent., Kick off the matching agent in the background. Frontend polls GET /matches f (+9 more) + +### Community 24 - "Community 24" +Cohesion: 0.12 +Nodes (15): useMe(), useUsers(), ApprovalView(), approveBtnStyle, cardStyle, commentBlockStyle, errorStyle, gateBadge (+7 more) + +### Community 25 - "Community 25" +Cohesion: 0.14 +Nodes (15): Diagnosis Agent (Stage 2) + clarification CRUD coverage. The real `/diagnose` c, Running diagnosis on an opportunity with zero uploaded files is a 400., Seed one of each priority — Postgres orders enum values by declaration. Que, Writing a non-empty client_answer flips status to 'answered' and stamps answ, Dismissing a clarification should set status=dismissed but NOT stamp answere, A clarification belonging to opp A cannot be updated via opp B's URL., Round-trip the Diagnosis Agent against a small synthetic brief. Verifies:, _seed_clarification() (+7 more) + +### Community 26 - "Community 26" +Cohesion: 0.11 +Nodes (15): cardStyle, emptyStyle, ghostBtnStyle, hintStyle, labelStyle, metaLabelStyle, progBadgeStyle, Props (+7 more) + +### Community 27 - "Community 27" +Cohesion: 0.21 +Nodes (16): User: ameliagreene@oliver.agency (editor), User: andrewsmith@oliver.agency (editor), User: coreyo'brien@oliver.agency (editor), User: daveporter@oliver.agency (admin), User: davetomlinson@oliver.agency (editor), User: francescabuzzeo@oliver.agency (editor), User: guydurham@oliver.agency (editor), User: ianswaine@oliver.agency (editor) (+8 more) + +### Community 28 - "Community 28" +Cohesion: 0.12 +Nodes (15): cardStyle, emptyStyle, errorStyle, hintStyle, metaLabelStyle, primaryBtnStyle, Props, Stage8Ratecard() (+7 more) + +### Community 29 - "Community 29" +Cohesion: 0.12 +Nodes (14): APPROACH_COLORS, badgeStyle, cardStyle, chipStyle, DeliveryModel, errorStyle, HEADLINE_BADGE, hintStyle (+6 more) + +### Community 30 - "Community 30" +Cohesion: 0.13 +Nodes (14): cardStyle, errorStyle, hintStyle, itemStyle, listStyle, primaryBtnStyle, Props, subTitleStyle (+6 more) + +### Community 31 - "Community 31" +Cohesion: 0.13 +Nodes (14): badgeStyle, CapabilityGaps, cardStyle, chipStyle, CRITICALITY_BADGE, errorStyle, hintStyle, itemStyle (+6 more) + +### Community 32 - "Community 32" +Cohesion: 0.16 +Nodes (12): approvalsKeys, _build_context(), get_approval_context(), Approval endpoints: request, decide, list, by-token., useApprovalByToken(), useDecideApproval(), useRequestApprovals(), useStageApprovals() (+4 more) + +### Community 33 - "Community 33" +Cohesion: 0.21 +Nodes (9): get_approval_by_token(), Open an approval by its email-link token. Authenticated session still requir, _fetch_email_token(), Approval workflow coverage. Exercises the full approval lifecycle on a live bac, test_approval_reject_blocks_stage(), test_full_approval_happy_path(), test_invalid_decision_string_400(), test_request_approval_unknown_approver_400() (+1 more) + +### Community 34 - "Community 34" +Cohesion: 0.14 +Nodes (7): Stage 6 — Asset Normalizer + ClientAsset CRUD coverage. The real `/assets/norma, Running normalize on an opportunity with zero uploaded files is a 400. The, Round-trip the Asset Normalizer against a small synthetic brief. Verifies:, First asset should land at sort_order=0, the next at sort_order=1., test_create_asset_assigns_sort_order(), test_normalize_happy_path(), test_normalize_no_files_400() + +### Community 35 - "Community 35" +Cohesion: 0.18 +Nodes (9): type, opp_payload_factory(), Returns a fresh payload dict each call so tests can mutate it., CRUD coverage for /api/opportunities. Verifies create / list / get / update / d, Create + delete + verify 404 — does not use the fixture so we own teardown., test_create_opportunity_defaults(), test_create_opportunity_invalid_model_type(), test_delete_opportunity_round_trip() (+1 more) + +### Community 36 - "Community 36" +Cohesion: 0.23 +Nodes (11): Base, DeclarativeBase, ClarificationQuestion, Clarification questions surfaced by the Diagnosis Agent (Stage 2). Each questio, ModelType, NotificationType, DealStatus, Opportunity (+3 more) + +### Community 37 - "Community 37" +Cohesion: 0.19 +Nodes (14): Approval Service, create_approval_requests(), Approval Flow (Mailgun + email token), Validation & Approval Gates (Stage 14), Qualification Assessment (Stage 3), TROWLS Qualification Scorecard, _approval_link(), _build_email_html() (+6 more) + +### Community 38 - "Community 38" +Cohesion: 0.18 +Nodes (11): ai_debug(), ai_usage(), ai_usage_reset(), OLIVER Sales Operations Platform — FastAPI entrypoint., call_claude(), get_client(), get_debug_log(), get_usage_stats() (+3 more) + +### Community 39 - "Community 39" +Cohesion: 0.18 +Nodes (12): useDeleteOpportunity(), useOpportunities(), badgeStyle, cardStyle, cardWrapperStyle, Dashboard(), DEAL_BADGE, deleteBtnStyle (+4 more) + +### Community 40 - "Community 40" +Cohesion: 0.17 +Nodes (11): Stage 4 — Q&A pack export coverage. Exercises GET /opportunities/{id}/qa-pack/e, Zero clarifications: word download is still a valid docx., Seed mixed-priority clarifications across categories and verify both: * Bot, An opp name with /, ?, and quotes must be scrubbed in Content-Disposition., Insert a ClarificationQuestion row directly. Returns its id. Postgres store, Zero clarifications: download is still a valid xlsx with title block., _seed_clarification(), test_qa_pack_excel_empty_state() (+3 more) + +### Community 41 - "Community 41" +Cohesion: 0.17 +Nodes (13): useCompleteStage(), useOpportunity(), useStages(), useUpdateOpportunity(), Opportunity model — top-level entity in the 17-stage state machine. An Opportun, cardStyle, EditableOpportunityName(), editPencilStyle (+5 more) + +### Community 42 - "Community 42" +Cohesion: 0.28 +Nodes (12): _float(), _int(), _load_asset_list(), _load_role_mappings(), _load_routes(), _load_service_lines(), parse_gmal_workbook(), Parse the GMAL Excel workbook into database records. Ported from V1 with one ch (+4 more) + +### Community 43 - "Community 43" +Cohesion: 0.23 +Nodes (10): _decode_token(), get_current_user(), _get_jwks(), Azure SSO middleware — validates Microsoft Entra ID-issued ID tokens and upserts, Validate the bearer token (or accept dev bypass), upsert the AppUser, and re, Find or create the AppUser for this identity. Stamps last_login on hit. SSO, _upsert_app_user(), AppUser (+2 more) + +### Community 44 - "Community 44" +Cohesion: 0.18 +Nodes (11): _approval_to_out(), list_stage_approvals(), my_pending_approvals(), ApprovalDecisionPayload, ApprovalOut, ApprovalRequestItem, ApprovalRequestPayload, ApproverInfo (+3 more) + +### Community 45 - "Community 45" +Cohesion: 0.27 +Nodes (11): BaseModel, ClientAssetCreate, ClientAssetUpdate, Config, MatchOut, MatchSelectRequest, NormalizeRunResponse, RatecardSummary (+3 more) + +### Community 46 - "Community 46" +Cohesion: 0.20 +Nodes (7): AuthProvider(), loginBoxStyle, loginBtnStyle, loginDescStyle, loginLogoStyle, loginPageStyle, logoMarkStyle + +### Community 47 - "Community 47" +Cohesion: 0.22 +Nodes (8): client(), opportunity(), _opportunity_payload(), pytest_sessionstart(), Shared pytest fixtures for the OSOP integration test suite. These tests run aga, Async HTTP client pointed at the running backend., Fail fast (sync) if the backend isn't reachable. No event-loop dance., Create a fresh opportunity, yield it, then delete it on teardown. Cleanup r + +### Community 48 - "Community 48" +Cohesion: 0.20 +Nodes (9): Approval, ApprovalStatus, Stage state, artifacts, and approvals for the 17-stage workflow., Per-(opportunity, stage_number) progress record., Output produced by a stage — JSON content + optional file reference. artifa, Approval record for a gated stage. role_required values: commercial | deliv, StageArtifact, StageState (+1 more) + +### Community 49 - "Community 49" +Cohesion: 0.24 +Nodes (5): _make_docx_bytes(), _make_xlsx_bytes(), File upload + extraction coverage. We synthesize all fixture files in-process s, test_upload_docx(), test_upload_md() + +### Community 50 - "Community 50" +Cohesion: 0.38 +Nodes (9): In-app notification coverage. Verifies that requesting an approval creates an A, When a non-owner approves, the opportunity owner should receive an APPROVAL_, _request_approval(), test_approval_request_creates_notification(), test_mark_all_read_zeroes_count(), test_mark_one_read(), test_owner_notified_on_approval_decision(), test_unread_count_reflects_new_notification() (+1 more) + +### Community 52 - "Community 52" +Cohesion: 0.22 +Nodes (8): compilerOptions, allowSyntheticDefaultImports, composite, module, moduleResolution, skipLibCheck, strict, include + +### Community 53 - "Community 53" +Cohesion: 0.22 +Nodes (8): ClientAsset, Match, MatchConfidence, RatecardLine, Client asset workflow models — Stages 6/7/8. Mirrors V1's project.py but FKed t, A normalized deliverable extracted from the brief at Stage 6., AI-proposed match between a ClientAsset and a GMAL asset (Stage 7)., One row per (role × client asset) at Stage 8. `total_hours` is the per-1-as + +### Community 54 - "Community 54" +Cohesion: 0.33 +Nodes (8): Base, GmalAsset, GmalHours, GmalServiceLine, GMAL catalog models — ported from V1 unchanged. The 390-asset GMAL catalog (Uni, Role, RoleLevelMapping, Notification + +### Community 55 - "Community 55" +Cohesion: 0.31 +Nodes (8): get_asset(), Config, GmalAssetBrief, GmalAssetDetail, GmalAssetWithHours, GmalHoursOut, Pydantic schemas for the GMAL catalog (ported from V1)., RoleOut + +### Community 56 - "Community 56" +Cohesion: 0.25 +Nodes (8): _get_opp(), get_team_shape(), Stage 11 — team shape (FTE per role) endpoint., Compute FTE per role from the ratecard. Query params: - `efficiency_pct, TeamShape, calculate_team_shape(), Calculate team shape (FTE headcount) from ratecard data — Stage 11. Ported from, Compute FTE per role for an opportunity's ratecard. Two efficiency modes: + +### Community 57 - "Community 57" +Cohesion: 0.22 +Nodes (3): 17-stage state machine coverage. Verifies initialisation, single-step advance,, Stage 5 is not_started — cannot be completed before its predecessors., test_complete_out_of_order_stage_returns_400() + +### Community 58 - "Community 58" +Cohesion: 0.25 +Nodes (8): Background task: open a fresh session, run the normalizer. Mirrors the patt, Kick off the Stage 6 Asset Normalizer in the background. Returns 202 immedi, _run_normalize_in_bg(), run_normalizer(), _is_internal_artefact(), Asset Normalizer — Stage 6. Reads the same uploaded files Stage 1/2 used and (w, True if `name` looks like an internal pitch artefact, not a client deliverable., Run the Asset Normalizer. Replaces existing ClientAssets on success. Return + +### Community 59 - "Community 59" +Cohesion: 0.22 +Nodes (7): Stage 12 — Identify capability gaps and suggest partners. Reads the Stage 2 dia, run_capability_gaps(), Run only when deal_status is WON. Reads upstream artifacts., run_implementation_plan(), Stage 13 — Generate caveats / assumptions / SLAs / KPIs / governance. Produces, run_support_docs(), extract_tool_result() + +### Community 60 - "Community 60" +Cohesion: 0.25 +Nodes (5): get_asset_family(), get_stats(), GMAL catalog browse endpoints — minimum needed for Phase 1. Read endpoints (lis, Get all complexity variants (family) for a GMAL asset., GmalStatsOut + +### Community 61 - "Community 61" +Cohesion: 0.29 +Nodes (6): complete_stage(), get_stage(), initialize_stages(), 17-stage state machine — initialize, advance, validate gating. Stages cannot be, Create all 17 StageState rows for a new opportunity. Stage 1 starts IN_PROGRESS., Mark a stage COMPLETED and unlock the next. Returns (completed_stage, next_ + +### Community 62 - "Community 62" +Cohesion: 0.43 +Nodes (6): _extract_docx(), _extract_pdf(), extract_text(), _extract_xlsx(), Extract plain text from uploaded RFP/brief documents. Supports .docx, .xlsx, .p, Extract text from a file. Raises ValueError for unsupported types. + +### Community 63 - "Community 63" +Cohesion: 0.38 +Nodes (7): Bug-4 Invariant (RatecardLine hours per asset), Efficiency Logic (Stage 10), GMAL Catalog, Match Agent (Stage 7), Ratecard Builder (Stage 8), Team Shape Service (Stage 11), Build ratecards from confirmed matches (Stage 8). Ported from V1's ratecard_bui + +### Community 64 - "Community 64" +Cohesion: 0.38 +Nodes (6): _get_opp(), get_ratecard(), post_build_ratecard(), Stage 8 — build + read the per-asset ratecard., build_ratecard(), Build a ratecard for an opportunity from its selected matches. For each sel + +### Community 65 - "Community 65" +Cohesion: 0.48 +Nodes (6): create_asset(), delete_asset(), _get_opp(), list_assets(), Stage 6 — client asset CRUD + normalize agent., update_asset() + +### Community 66 - "Community 66" +Cohesion: 0.33 +Nodes (5): list_users(), me(), User directory endpoints — list users (used by approver picker)., Returns all known AppUsers — the directory of potential approvers. Users lan, Current authenticated user's own row. + +### Community 67 - "Community 67" +Cohesion: 0.47 +Nodes (5): accounts, api, loginRequest, msalConfig, msalInstance + +### Community 68 - "Community 68" +Cohesion: 0.33 +Nodes (4): costStyle, labelStyle, pillStyle, tokensStyle + +### Community 69 - "Community 69" +Cohesion: 0.47 +Nodes (5): _get(), _load(), lookup(), Email-based access control list loaded from config/allowed_users.yaml. Loaded o, Return the UserRole for *email* or None if not in the allowlist. + +### Community 70 - "Community 70" +Cohesion: 0.33 +Nodes (5): submit_decision(), Mark an approval approved/rejected and notify the opportunity owner., record_decision(), create_notification(), Helpers for creating in-app notifications. + +### Community 71 - "Community 71" +Cohesion: 0.47 +Nodes (5): _api_base(), is_configured(), Mailgun email service. Sends via https://api.mailgun.net/v3/{domain}/messages (, Send an email via Mailgun. Returns Mailgun's response or a stub when not con, send_email() + +### Community 72 - "Community 72" +Cohesion: 0.33 +Nodes (5): ClarificationAnswerUpdate, Config, DiagnosisRunResponse, Schemas for clarification questions and Stage 2 diagnosis output., ClarificationQuestion + +### Community 73 - "Community 73" +Cohesion: 0.33 +Nodes (5): Config, OpportunityUpdate, Opportunity + stage schemas., StageCompleteRequest, StageStateOut + +### Community 74 - "Community 74" +Cohesion: 0.33 +Nodes (5): Stage 15 — Pitch Deck Agent. Claude reads every upstream artifact (intake, diag, Render a structured pitch deck outline to a printable markdown doc., Generate a slide-by-slide pitch deck outline., render_outline_to_markdown(), run_pitch_deck() + +### Community 75 - "Community 75" +Cohesion: 0.40 +Nodes (3): Config, Settings, BaseSettings + +### Community 77 - "Community 77" +Cohesion: 0.40 +Nodes (3): Gating coverage — stages 3 and 14 require Approval rows. We exercise the path t, A failed gating attempt must not leave the opp in a weird state., test_stage_3_blocked_does_not_mutate_state() + +### Community 78 - "Community 78" +Cohesion: 0.40 +Nodes (4): ingest_gmal_data(), GMAL data ingestion endpoint — admin-only in Phase 2 once role gating lands., Ingest GMAL data from Excel file. If no file is uploaded, uses the default, IngestResult + +### Community 79 - "Community 79" +Cohesion: 0.40 +Nodes (4): TROWLS qualification scorecard schemas (Stage 3)., TROWLSNotes, TROWLSScores, QualificationScorecard + +### Community 80 - "Community 80" +Cohesion: 0.40 +Nodes (4): Config, IntakeRunResponse, Schemas for opportunity files + stage artifacts., StageArtifact + +### Community 81 - "Community 81" +Cohesion: 0.50 +Nodes (4): _parse_iso_date(), Intake Agent — Stage 1. Reads the concatenated text of every file uploaded agai, Run the Intake Agent against all files attached to the opportunity. Returns, run_intake() + +### Community 83 - "Community 83" +Cohesion: 0.50 +Nodes (3): health(), Health check endpoint — public, no auth required., Returns OK if the API is up and the database round-trips a query. + +### Community 84 - "Community 84" +Cohesion: 0.50 +Nodes (4): A file with empty extracted_text means no usable input → 400 with 'text'., Insert an OpportunityFile row whose extracted_text is empty. Used to drive, _seed_empty_text_file(), test_diagnose_empty_text_400() + +### Community 85 - "Community 85" +Cohesion: 0.50 +Nodes (3): Diagnosis Agent — Stage 2. Reads the same uploaded files as Stage 1 and produce, Run the Diagnosis Agent and persist the result + clarification questions. R, run_diagnosis() + +### Community 92 - "Community 92" +Cohesion: 0.67 +Nodes (3): Trigger Downstream Systems (Stage 17), Salesforce (Phase 2), SharePoint (Phase 2) + +## Knowledge Gaps +- **472 isolated node(s):** `composite`, `skipLibCheck`, `module`, `moduleResolution`, `allowSyntheticDefaultImports` (+467 more) + These have ≤1 connection - possible missing edges or undocumented components. +- **27 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes. + +## Suggested Questions +_Questions this graph is uniquely positioned to answer:_ + +- **Why does `Opportunity` connect `Community 41` to `Community 2`, `Community 3`, `Community 4`, `Community 6`, `Community 8`, `Community 9`, `Community 10`, `Community 12`, `Community 15`, `Community 17`, `Community 20`, `Community 26`, `Community 28`, `Community 29`, `Community 30`, `Community 31`, `Community 36`, `Community 45`, `Community 73`, `Community 80`?** + _High betweenness centrality (0.176) - this node is a cross-community bridge._ +- **Why does `Stage 13 — Support Docs Agent` connect `Community 30` to `Community 32`, `Community 1`, `Community 67`, `Community 68`, `Community 8`, `Community 41`?** + _High betweenness centrality (0.143) - this node is a cross-community bridge._ +- **Why does `Tasks — OLIVER Sales Ops Platform` connect `Community 1` to `Community 30`?** + _High betweenness centrality (0.069) - this node is a cross-community bridge._ +- **What connects `composite`, `skipLibCheck`, `module` to the rest of the system?** + _669 weakly-connected nodes found - possible documentation gaps or missing edges._ +- **Should `Community 0` be split into smaller, more focused modules?** + _Cohesion score 0.053763440860215055 - nodes in this community are weakly interconnected._ +- **Should `Community 1` be split into smaller, more focused modules?** + _Cohesion score 0.06487434248977206 - nodes in this community are weakly interconnected._ +- **Should `Community 2` be split into smaller, more focused modules?** + _Cohesion score 0.0545790934320074 - nodes in this community are weakly interconnected._ \ No newline at end of file diff --git a/wiki/architecture/pdf-accessibility-structure.md b/wiki/architecture/pdf-accessibility-structure.md new file mode 100644 index 0000000..3a0ba5c --- /dev/null +++ b/wiki/architecture/pdf-accessibility-structure.md @@ -0,0 +1,413 @@ +--- +tags: [architecture, graphify, pdf-accessibility] +updated: 2026-05-18 +--- + +# Graph Report - /Users/ai_leed/Documents/Projects/Oliver/pdf-accessibility (2026-05-18) + +## Corpus Check +- cluster-only mode — file stats not available + +## Summary +- 1105 nodes · 1729 edges · 107 communities (69 shown, 38 thin omitted) +- Extraction: 80% EXTRACTED · 20% INFERRED · 0% AMBIGUOUS · INFERRED: 345 edges (avg confidence: 0.69) +- Token cost: 0 input · 0 output + +## Graph Freshness +- Built from commit: `54eddd70` +- Run `git rev-parse HEAD` and compare to check if the graph is stale. +- Run `graphify update .` after code changes (no API cost). + +## Community Hubs (Navigation) +- [[_COMMUNITY_Community 0|Community 0]] +- [[_COMMUNITY_Community 1|Community 1]] +- [[_COMMUNITY_Community 2|Community 2]] +- [[_COMMUNITY_Community 3|Community 3]] +- [[_COMMUNITY_Community 4|Community 4]] +- [[_COMMUNITY_Community 5|Community 5]] +- [[_COMMUNITY_Community 6|Community 6]] +- [[_COMMUNITY_Community 7|Community 7]] +- [[_COMMUNITY_Community 8|Community 8]] +- [[_COMMUNITY_Community 9|Community 9]] +- [[_COMMUNITY_Community 10|Community 10]] +- [[_COMMUNITY_Community 11|Community 11]] +- [[_COMMUNITY_Community 12|Community 12]] +- [[_COMMUNITY_Community 13|Community 13]] +- [[_COMMUNITY_Community 14|Community 14]] +- [[_COMMUNITY_Community 15|Community 15]] +- [[_COMMUNITY_Community 16|Community 16]] +- [[_COMMUNITY_Community 17|Community 17]] +- [[_COMMUNITY_Community 18|Community 18]] +- [[_COMMUNITY_Community 19|Community 19]] +- [[_COMMUNITY_Community 20|Community 20]] +- [[_COMMUNITY_Community 21|Community 21]] +- [[_COMMUNITY_Community 22|Community 22]] +- [[_COMMUNITY_Community 23|Community 23]] +- [[_COMMUNITY_Community 24|Community 24]] +- [[_COMMUNITY_Community 25|Community 25]] +- [[_COMMUNITY_Community 26|Community 26]] +- [[_COMMUNITY_Community 27|Community 27]] +- [[_COMMUNITY_Community 28|Community 28]] +- [[_COMMUNITY_Community 29|Community 29]] +- [[_COMMUNITY_Community 30|Community 30]] +- [[_COMMUNITY_Community 31|Community 31]] +- [[_COMMUNITY_Community 32|Community 32]] +- [[_COMMUNITY_Community 33|Community 33]] +- [[_COMMUNITY_Community 34|Community 34]] +- [[_COMMUNITY_Community 35|Community 35]] +- [[_COMMUNITY_Community 36|Community 36]] +- [[_COMMUNITY_Community 37|Community 37]] +- [[_COMMUNITY_Community 38|Community 38]] +- [[_COMMUNITY_Community 39|Community 39]] +- [[_COMMUNITY_Community 40|Community 40]] +- [[_COMMUNITY_Community 41|Community 41]] +- [[_COMMUNITY_Community 42|Community 42]] +- [[_COMMUNITY_Community 43|Community 43]] +- [[_COMMUNITY_Community 44|Community 44]] +- [[_COMMUNITY_Community 45|Community 45]] +- [[_COMMUNITY_Community 46|Community 46]] +- [[_COMMUNITY_Community 47|Community 47]] +- [[_COMMUNITY_Community 48|Community 48]] +- [[_COMMUNITY_Community 49|Community 49]] +- [[_COMMUNITY_Community 50|Community 50]] +- [[_COMMUNITY_Community 51|Community 51]] +- [[_COMMUNITY_Community 52|Community 52]] +- [[_COMMUNITY_Community 53|Community 53]] +- [[_COMMUNITY_Community 54|Community 54]] +- [[_COMMUNITY_Community 55|Community 55]] +- [[_COMMUNITY_Community 56|Community 56]] +- [[_COMMUNITY_Community 57|Community 57]] +- [[_COMMUNITY_Community 58|Community 58]] +- [[_COMMUNITY_Community 60|Community 60]] +- [[_COMMUNITY_Community 61|Community 61]] +- [[_COMMUNITY_Community 62|Community 62]] +- [[_COMMUNITY_Community 63|Community 63]] +- [[_COMMUNITY_Community 64|Community 64]] +- [[_COMMUNITY_Community 65|Community 65]] +- [[_COMMUNITY_Community 66|Community 66]] +- [[_COMMUNITY_Community 70|Community 70]] +- [[_COMMUNITY_Community 71|Community 71]] +- [[_COMMUNITY_Community 72|Community 72]] +- [[_COMMUNITY_Community 73|Community 73]] +- [[_COMMUNITY_Community 74|Community 74]] +- [[_COMMUNITY_Community 75|Community 75]] +- [[_COMMUNITY_Community 76|Community 76]] +- [[_COMMUNITY_Community 79|Community 79]] +- [[_COMMUNITY_Community 80|Community 80]] +- [[_COMMUNITY_Community 81|Community 81]] +- [[_COMMUNITY_Community 84|Community 84]] +- [[_COMMUNITY_Community 85|Community 85]] +- [[_COMMUNITY_Community 86|Community 86]] +- [[_COMMUNITY_Community 87|Community 87]] +- [[_COMMUNITY_Community 88|Community 88]] +- [[_COMMUNITY_Community 89|Community 89]] +- [[_COMMUNITY_Community 90|Community 90]] +- [[_COMMUNITY_Community 91|Community 91]] +- [[_COMMUNITY_Community 92|Community 92]] +- [[_COMMUNITY_Community 93|Community 93]] +- [[_COMMUNITY_Community 94|Community 94]] +- [[_COMMUNITY_Community 95|Community 95]] +- [[_COMMUNITY_Community 96|Community 96]] +- [[_COMMUNITY_Community 97|Community 97]] +- [[_COMMUNITY_Community 98|Community 98]] +- [[_COMMUNITY_Community 99|Community 99]] +- [[_COMMUNITY_Community 100|Community 100]] +- [[_COMMUNITY_Community 101|Community 101]] +- [[_COMMUNITY_Community 102|Community 102]] +- [[_COMMUNITY_Community 103|Community 103]] +- [[_COMMUNITY_Community 104|Community 104]] +- [[_COMMUNITY_Community 105|Community 105]] +- [[_COMMUNITY_Community 106|Community 106]] + +## God Nodes (most connected - your core abstractions) +1. `PDFRemediator` - 49 edges +2. `TestCheckMethods` - 34 edges +3. `VeraPDFValidator` - 30 edges +4. `CacheManager` - 29 edges +5. `RetryableError` - 28 edges +6. `AccessibilityIssue` - 25 edges +7. `CheckResult` - 23 edges +8. `index` - 22 edges +9. `Severity` - 20 edges +10. `error()` - 19 edges + +## Surprising Connections (you probably didn't know these) +- `Test AccessibilityIssue dataclass` --conceptually_related_to--> `TestEnterprisePDFChecker` [INFERRED] + tests/test_checker.py → htmlcov/z_a44f0ac069e85531_test_checker_py.html +- `sample_good.pdf (Accessible Test PDF)` --references--> `enterprise_pdf_checker.py` [INFERRED] + Test_files/sample_good.pdf → README's/ENTERPRISE_README.md +- `sample_poor.pdf (Inaccessible Test PDF)` --references--> `enterprise_pdf_checker.py` [INFERRED] + Test_files/sample_poor.pdf → README's/ENTERPRISE_README.md +- `Check document metadata` --rationale_for--> `_check_metadata()` [EXTRACTED] + enterprise_pdf_checker.py → README's/TECHNICAL_BACKGROUND.md +- `Exception that indicates an operation should be retried` --rationale_for--> `RetryableError` [EXTRACTED] + retry_helper.py → htmlcov/z_a44f0ac069e85531_test_retry_extended_py.html + +## Communities (107 total, 38 thin omitted) + +### Community 0 - "Community 0" +Cohesion: 0.06 +Nodes (47): PostgreSQL Database, db/init.sql, create_job(), dismiss_issue(), get_conn(), get_dismissed_indices(), get_job(), get_stats() (+39 more) + +### Community 1 - "Community 1" +Cohesion: 0.06 +Nodes (48): checkRateLimit(), get_queue_length(), get_redis(), pop_job(), push_job(), Redis Queue Helper — Push/pop jobs, track status, rate limiting, Get a Redis connection., Push a job to the processing queue. (+40 more) + +### Community 2 - "Community 2" +Cohesion: 0.07 +Nodes (18): Exception, flaky_function(), Retry a function call with exponential backoff (non-decorator version) Args, Exception that indicates an operation should be retried, Determine if an error should be retried Args: error: Exception to c, Execute a function and return a fallback value on error (graceful degradation), Simulates a flaky API that fails twice then succeeds, Decorator to retry a function with exponential backoff Args: max_re (+10 more) + +### Community 3 - "Community 3" +Cohesion: 0.06 +Nodes (36): Alt Text (Alternative Text for Images), Anthropic API Key, Google Cloud API Key (non-JSON), Dave Porter venv Path Configuration, Anthropic Claude 3.5 Sonnet, Enterprise PDF Accessibility Checker, enterprise_pdf_checker.py, Google Cloud Vision API (+28 more) + +### Community 4 - "Community 4" +Cohesion: 0.05 +Nodes (39): command, completed_at, file_size, filepath, job_id, original_filename, started_at, status (+31 more) + +### Community 5 - "Community 5" +Cohesion: 0.07 +Nodes (18): Check link quality (WCAG 2.4.4) — only checks actual hyperlink label text., Check heading structure and hierarchy, Check tab order is set for pages, Check role mapping for custom tags, Check form field accessibility, Check table accessibility using PDF structure tree (tagged tables)., Analyse a single /Table structure element. Returns True if no issues found., Recursively collect structural stats from a table's children. (+10 more) + +### Community 6 - "Community 6" +Cohesion: 0.09 +Nodes (12): PDF/UA-1 Standard, analyze(), calculate_contrast_ratio(), check_image_contrast(), count_syllables(), get_luminance(), Check color contrast using image analysis, Check content readability (language-aware: Flesch only for English). (+4 more) + +### Community 7 - "Community 7" +Cohesion: 0.15 +Nodes (35): header, file, base64url_encode(), error(), extractUserFromToken(), getCloudRunToken(), getDB(), handleBatchStatus() (+27 more) + +### Community 8 - "Community 8" +Cohesion: 0.11 +Nodes (36): files, cleanup_py, cloudrun_service_py, create_test_pdf_with_images_py, db_manager_py, enterprise_pdf_checker_py, logger_config_py, pdf_remediation_py (+28 more) + +### Community 9 - "Community 9" +Cohesion: 0.08 +Nodes (36): Client Glossary (Brand Terminology), Hybrid Validation Engine Concept, OMG Project ID Traceability, Role-Based Access Control (RBAC), PDF/UA Compliance Concept, WCAG Accessibility Standards, Matterhorn Protocol, PDF Accessibility Checker Requirements Brief (+28 more) + +### Community 10 - "Community 10" +Cohesion: 0.07 +Nodes (16): Enum, ColorContrastChecker, Issue severity levels, WCAG color contrast validation, Content readability analysis, ReadabilityAnalyzer, Severity, checker_good() (+8 more) + +### Community 11 - "Community 11" +Cohesion: 0.09 +Nodes (21): AccessibilityIssue, CheckResult, Represents an accessibility issue, Results from a specific check, TestCheckResult, Unit tests for enterprise_pdf_checker.py, Test suite for EnterprisePDFChecker class, Test retry logic integration (+13 more) + +### Community 12 - "Community 12" +Cohesion: 0.06 +Nodes (30): accessibility_score, auto_fixable_count, checks_performed, filename, issues, page_image_dpi, page_images, 1 (+22 more) + +### Community 13 - "Community 13" +Cohesion: 0.08 +Nodes (30): AccessibilityIssue (enterprise_pdf_checker.py), CacheManager (enterprise_pdf_checker.py), CheckResult (enterprise_pdf_checker.py), ColorContrastChecker (enterprise_pdf_checker.py), enterprise_pdf_checker.py, EnterprisePDFChecker (enterprise_pdf_checker.py), NonRetryableError (retry_helper.py), ReadabilityAnalyzer (enterprise_pdf_checker.py) (+22 more) + +### Community 14 - "Community 14" +Cohesion: 0.11 +Nodes (24): viewBatchResult(), allIssues, applyScoreRecalc(), CP_TO_CHECK, dismissedIndices, dismissIssue(), displayIssues(), displayMatterhorn() (+16 more) + +### Community 15 - "Community 15" +Cohesion: 0.07 +Nodes (22): begin, btn, element, end, getCellValue(), helpCheck, line_height, line_number (+14 more) + +### Community 17 - "Community 17" +Cohesion: 0.11 +Nodes (10): main(), Convert to dictionary for JSON serialization, Analyze what can be auto-fixed, Generate PNG images for each page for visual display, Build Matterhorn Protocol PDF/UA-1 checkpoint summary., Generate comprehensive summary, Alias for check_all - maintains backward compatibility, Convert results to dictionary (+2 more) + +### Community 18 - "Community 18" +Cohesion: 0.19 +Nodes (12): Wrapper for veraPDF validation, VeraPDFValidator, Extended tests for pdf_remediation.py — covers PDFRemediator analysis and fix me, test_validate_compliant(), test_validate_no_jobs(), test_validate_process_error(), test_validate_timeout(), TestVeraPDFValidatorExtended (+4 more) + +### Community 19 - "Community 19" +Cohesion: 0.19 +Nodes (9): handleMsalRedirect(), msalConfig, showAuthenticatedUI(), showLoginUI(), buildHistoryRow(), deleteHistoryJob(), escapeHtml(), loadHistory() (+1 more) + +### Community 20 - "Community 20" +Cohesion: 0.21 +Nodes (7): CacheManager, Manages caching of API results to reduce costs, Generate cache key from data, Test that different content produces different keys, Test suite for CacheManager class, Test that cache keys are generated correctly, TestCacheManager + +### Community 21 - "Community 21" +Cohesion: 0.22 +Nodes (10): getExportUrl(), addBatchFiles(), batchFiles, clearBatchFiles(), escapeHtml(), exportReport(), pollBatchStatus(), removeBatchFile() (+2 more) + +### Community 22 - "Community 22" +Cohesion: 0.22 +Nodes (7): MSAL Azure AD Authentication, css/styles.css, createIssueCard(), getCategoryIcon(), getSeverityIcon(), WCAG_SLUGS, wcagCriterionLinks() + +### Community 23 - "Community 23" +Cohesion: 0.26 +Nodes (5): PDFRemediator, Automatically fix common PDF accessibility issues, TestPDFRemediatorAnalysis, TestPDFRemediatorApplyFixes, TestPDFRemediatorFixMethods + +### Community 24 - "Community 24" +Cohesion: 0.21 +Nodes (13): cleanup.py, Code Coverage Report (13%), db_manager.py, Coverage Report Index, logger_config.py, setup_logger, redis_queue.py, retry_helper.py (+5 more) + +### Community 25 - "Community 25" +Cohesion: 0.18 +Nodes (13): check_pdf, cloudrun_service.py, upload_images_to_gcs, AccessibilityIssue, CacheManager, CheckResult, ColorContrastChecker, EnterprisePDFChecker (+5 more) + +### Community 26 - "Community 26" +Cohesion: 0.30 +Nodes (11): apiCall(), checkBatchStatus(), checkStatus(), getDebugInfo(), getResult(), getStats(), remediatePdf(), startCheck() (+3 more) + +### Community 27 - "Community 27" +Cohesion: 0.23 +Nodes (7): applyZoom(), initializePageViewer(), loadVisualPage(), resetZoom(), zoomIn(), zoomOut(), viewOnPage() + +### Community 28 - "Community 28" +Cohesion: 0.30 +Nodes (10): beginCheck(), handleFile(), loadResults(), pollJobStatus(), removeFile(), resetCheck(), showReadyState(), addLog() (+2 more) + +### Community 29 - "Community 29" +Cohesion: 0.17 +Nodes (6): TestPDFRemediator, Test suite for PDFRemediator class, Test that remediator initializes correctly, Test remediator handles missing input file, Test that analyze method exists, Test that apply_fixes method exists + +### Community 30 - "Community 30" +Cohesion: 0.17 +Nodes (11): temp_output_dir fixture, mock_api_responses(), Pytest configuration and fixtures for PDF Accessibility Checker tests, Path to sample good PDF file, Path to sample poor PDF file, Temporary directory for test outputs, Mock API responses for testing without actual API calls, Sample PDF metadata for testing (+3 more) + +### Community 31 - "Community 31" +Cohesion: 0.23 +Nodes (4): Anthropic Claude 3.5 Sonnet, Google Cloud Vision API, Redis Job Queue, WCAG 2.1 Compliance + +### Community 32 - "Community 32" +Cohesion: 0.31 +Nodes (6): handleMsalRedirect(), hideAuthOverlay(), msalConfig, openHistoryJob(), showAuthenticatedUI(), showLoginUI() + +### Community 33 - "Community 33" +Cohesion: 0.20 +Nodes (5): Apply selected fixes and save to new PDF, Add author information, Set document language, Mark document as tagged (WARNING: only if tags actually exist!), Add basic bookmarks based on page numbers + +### Community 34 - "Community 34" +Cohesion: 0.20 +Nodes (9): command, completed_at, file_size, filepath, job_id, original_filename, started_at, status (+1 more) + +### Community 35 - "Community 35" +Cohesion: 0.20 +Nodes (6): critical(), exception(), Log a warning message, Log a critical message, Log an exception with traceback, warning() + +### Community 36 - "Community 36" +Cohesion: 0.20 +Nodes (5): Process Claude's image analysis results, Process Google Vision results — only report actionable findings., Extract image bytes from PDF page, Return byte size of image data — used to filter out tiny decorative images., Comprehensive image accessibility check with AI + +### Community 37 - "Community 37" +Cohesion: 0.20 +Nodes (4): Tests for worker.py — all external dependencies mocked., TestProcessJob, TestWorkerMain, TestWorkerSignalHandling + +### Community 38 - "Community 38" +Cohesion: 0.22 +Nodes (5): Check navigation bookmarks, Analyze PDF and return suggested fixes, Check if language needs to be set, Check if PDF needs to be marked as tagged, Check if bookmarks should be added + +### Community 39 - "Community 39" +Cohesion: 0.22 +Nodes (3): main(), Run veraPDF validation and return structured results, CLI interface for remediation + +### Community 40 - "Community 40" +Cohesion: 0.22 +Nodes (5): Check document metadata, Check what metadata fixes are needed, Generate a suggested title from content or filename., Generate a suggested subject from first paragraph, _check_metadata() + +### Community 41 - "Community 41" +Cohesion: 0.25 +Nodes (9): enterprise_pdf_checker.py, logger_config.py, setup_logger, pdf_remediation.py, PDFRemediator, retry_helper.py, tests/test_remediation_extended.py, TestPDFRemediatorAnalysis (+1 more) + +### Community 42 - "Community 42" +Cohesion: 0.22 +Nodes (9): PDF Accessibility Checking, tests/conftest.py, sample_poor_pdf fixture, pdf_remediation.py, PDFRemediator, VeraPDFValidator, test_env.py, tests/test_remediation.py (+1 more) + +### Community 43 - "Community 43" +Cohesion: 0.39 +Nodes (7): cleanup_directory(), format_size(), get_age_hours(), main(), Return file/dir age in hours based on modification time., Delete files matching patterns older than retention_hours. Returns (files_d, Format bytes as human-readable string. + +### Community 44 - "Community 44" +Cohesion: 0.25 +Nodes (5): Test that os and sys are imported (bug fix validation), Test that logger is configured, Test that all required imports work, Test that module imports successfully, TestModuleImports + +### Community 45 - "Community 45" +Cohesion: 0.25 +Nodes (5): php_server fixture, TestAPIAuthentication, Test that API handles requests without authentication, Test that API accepts requests with valid dev key, Test that API accepts Bearer token authentication + +### Community 46 - "Community 46" +Cohesion: 0.25 +Nodes (6): php_server(), Integration tests for API (api.php), Start PHP development server for testing, Test API with actual file upload (if samples available), Test that test files exist, TestAPIWithFile + +### Community 47 - "Community 47" +Cohesion: 0.25 +Nodes (5): Test API endpoint structure, Test that API returns JSON, Test that CORS headers are present, Test that API handles OPTIONS preflight requests, TestAPIEndpoints + +### Community 48 - "Community 48" +Cohesion: 0.29 +Nodes (5): Unit tests for pdf_remediation.py, Integration tests for remediation workflow, Test complete remediation workflow, test_validate_method(), TestRemediationWorkflow + +### Community 49 - "Community 49" +Cohesion: 0.29 +Nodes (7): is_retryable_error, NonRetryableError, retry_on_failure, retry_with_backoff, safe_execute, tests/test_retry_extended.py, TestRetryWithBackoff + +### Community 50 - "Community 50" +Cohesion: 0.33 +Nodes (6): TestAPIAuthentication (tests/test_api.py), TestAPIEndpoints (tests/test_api.py), TestAPIWithFile (tests/test_api.py), TestAuthModule (tests/test_api.py), TestHelperModules (tests/test_api.py), tests/test_api.py + +### Community 51 - "Community 51" +Cohesion: 0.33 +Nodes (5): ContrastChecker Class, OCRChecker Class, pdf2image Library, Pillow (PIL) Library, pytesseract Library + +### Community 52 - "Community 52" +Cohesion: 0.40 +Nodes (4): check_pdf(), Upload page images to GCS and return {page_num: public_url} mapping., Accept multipart PDF upload, run accessibility checks, return results., upload_images_to_gcs() + +### Community 53 - "Community 53" +Cohesion: 0.33 +Nodes (5): get_logger(), Setup logger with file and console handlers Args: name: Logger name, Get or create a logger with the specified name Args: name: Logger n, setup_logger(), Test logger_config module + +### Community 54 - "Community 54" +Cohesion: 0.33 +Nodes (4): Test authentication module directly, Test API key generation endpoint, Test authentication test endpoint, TestAuthModule + +### Community 55 - "Community 55" +Cohesion: 0.40 +Nodes (4): enabledPlugins, frontend-design@claude-code-plugins, permissions, allow + +### Community 56 - "Community 56" +Cohesion: 0.50 +Nodes (4): create_image_with_text(), create_test_pdf(), Create an image with text in it (accessibility violation), Create a test PDF with accessibility issues + +### Community 57 - "Community 57" +Cohesion: 0.40 +Nodes (3): Test retry_helper module, Test that retry decorator functions, TestHelperModules + +### Community 58 - "Community 58" +Cohesion: 0.50 +Nodes (5): create_job, get_conn, update_job_status, TestProcessJob, process_job + +### Community 60 - "Community 60" +Cohesion: 0.50 +Nodes (4): db_manager.py, Coverage Function Index, tests/test_db_manager.py, TestCreateJob + +### Community 61 - "Community 61" +Cohesion: 0.67 +Nodes (3): pdf_remediation.py, PDFRemediator (pdf_remediation.py), VeraPDFValidator (pdf_remediation.py) + +### Community 63 - "Community 63" +Cohesion: 0.67 +Nodes (3): ReadabilityChecker Class, TextBlob Library, TextBlob Readability Analysis + +## Knowledge Gaps +- **227 isolated node(s):** `batchFiles`, `allIssues`, `dismissedIndices`, `overriddenChecks`, `WCAG_LEVELS` (+222 more) + These have ≤1 connection - possible missing edges or undocumented components. +- **38 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes. + +## Suggested Questions +_Questions this graph is uniquely positioned to answer:_ + +- **Why does `VeraPDFValidator` connect `Community 18` to `Community 4`, `Community 5`, `Community 6`, `Community 39`, `Community 41`, `Community 10`, `Community 11`, `Community 44`, `Community 48`, `Community 20`, `Community 23`, `Community 29`?** + _High betweenness centrality (0.151) - this node is a cross-community bridge._ +- **Why does `_check_metadata()` connect `Community 40` to `Community 3`, `Community 5`, `Community 38`, `Community 6`, `Community 23`?** + _High betweenness centrality (0.111) - this node is a cross-community bridge._ +- **Why does `enterprise_pdf_checker.py` connect `Community 41` to `Community 2`, `Community 42`, `Community 49`, `Community 18`, `Community 24`, `Community 58`, `Community 60`?** + _High betweenness centrality (0.111) - this node is a cross-community bridge._ +- **Are the 31 inferred relationships involving `PDFRemediator` (e.g. with `enterprise_pdf_checker.py` and `Severity`) actually correct?** + _`PDFRemediator` has 31 INFERRED edges - model-reasoned connections that need verification._ +- **Are the 7 inferred relationships involving `TestCheckMethods` (e.g. with `enterprise_pdf_checker.py` and `Severity`) actually correct?** + _`TestCheckMethods` has 7 INFERRED edges - model-reasoned connections that need verification._ +- **Are the 23 inferred relationships involving `VeraPDFValidator` (e.g. with `enterprise_pdf_checker.py` and `Severity`) actually correct?** + _`VeraPDFValidator` has 23 INFERRED edges - model-reasoned connections that need verification._ +- **Are the 23 inferred relationships involving `CacheManager` (e.g. with `RetryableError` and `VeraPDFValidator`) actually correct?** + _`CacheManager` has 23 INFERRED edges - model-reasoned connections that need verification._ \ No newline at end of file diff --git a/wiki/architecture/pimco-charts-structure.md b/wiki/architecture/pimco-charts-structure.md new file mode 100644 index 0000000..db471ea --- /dev/null +++ b/wiki/architecture/pimco-charts-structure.md @@ -0,0 +1,146 @@ +--- +tags: [architecture, graphify, pimco-charts] +updated: 2026-05-18 +--- + +# Graph Report - /Users/ai_leed/Documents/Projects/Oliver/pimco-charts (2026-05-18) + +## Corpus Check +- cluster-only mode — file stats not available + +## Summary +- 265 nodes · 350 edges · 32 communities (21 shown, 11 thin omitted) +- Extraction: 81% EXTRACTED · 19% INFERRED · 0% AMBIGUOUS · INFERRED: 66 edges (avg confidence: 0.8) +- Token cost: 0 input · 0 output + +## Graph Freshness +- Built from commit: `54eddd70` +- Run `git rev-parse HEAD` and compare to check if the graph is stale. +- Run `graphify update .` after code changes (no API cost). + +## Community Hubs (Navigation) +- [[_COMMUNITY_Community 0|Community 0]] +- [[_COMMUNITY_Community 1|Community 1]] +- [[_COMMUNITY_Community 2|Community 2]] +- [[_COMMUNITY_Community 3|Community 3]] +- [[_COMMUNITY_Community 4|Community 4]] +- [[_COMMUNITY_Community 5|Community 5]] +- [[_COMMUNITY_Community 6|Community 6]] +- [[_COMMUNITY_Community 7|Community 7]] +- [[_COMMUNITY_Community 8|Community 8]] +- [[_COMMUNITY_Community 9|Community 9]] +- [[_COMMUNITY_Community 10|Community 10]] +- [[_COMMUNITY_Community 11|Community 11]] +- [[_COMMUNITY_Community 12|Community 12]] +- [[_COMMUNITY_Community 13|Community 13]] +- [[_COMMUNITY_Community 14|Community 14]] +- [[_COMMUNITY_Community 15|Community 15]] +- [[_COMMUNITY_Community 16|Community 16]] +- [[_COMMUNITY_Community 18|Community 18]] +- [[_COMMUNITY_Community 19|Community 19]] +- [[_COMMUNITY_Community 27|Community 27]] +- [[_COMMUNITY_Community 28|Community 28]] +- [[_COMMUNITY_Community 29|Community 29]] +- [[_COMMUNITY_Community 30|Community 30]] +- [[_COMMUNITY_Community 31|Community 31]] + +## God Nodes (most connected - your core abstractions) +1. `app/main.py` - 13 edges +2. `render_chart()` - 11 edges +3. `_render_panel()` - 11 edges +4. `_render_dual_y_panel_body()` - 11 edges +5. `app/renderer/engine.py` - 11 edges +6. `_render_standard_panel_body()` - 10 edges +7. `_render_pie_panel()` - 9 edges +8. `test_chart2_gdp_investment()` - 8 edges +9. `test_chart3_dual_panel()` - 8 edges +10. `_render_labels()` - 8 edges + +## Surprising Connections (you probably didn't know these) +- `main()` --calls--> `render_chart()` [INFERRED] + test_render.py → app/renderer/engine.py +- `test_chart1_bond_yields()` --calls--> `render_chart()` [INFERRED] + test_render_all.py → app/renderer/engine.py +- `test_chart2_gdp_investment()` --calls--> `render_chart()` [INFERRED] + test_render_all.py → app/renderer/engine.py +- `test_chart3_dual_panel()` --calls--> `render_chart()` [INFERRED] + test_render_all.py → app/renderer/engine.py +- `app/auth/` --references--> `itsdangerous` [INFERRED] + README.md → requirements.txt + +## Communities (32 total, 11 thin omitted) + +### Community 0 - "Community 0" +Cohesion: 0.09 +Nodes (37): Render X-axis with date tick labels below the plot area., Render X-axis with categorical string labels below the plot area., render_x_axis(), render_x_axis_categorical(), _build_categorical_scale(), _build_date_scale(), _compute_y_axis(), _dispatch_series() (+29 more) + +### Community 1 - "Community 1" +Cohesion: 0.07 +Nodes (26): _deep_merge_spec(), interpret_brief(), _merge_dicts(), Claude API integration: interprets a brief + data summary into a ChartSpec., Send brief + data summary to Claude and get back a ChartSpec., Merge `updated` onto `base`, preserving non-None base values wherever `updat, Refine an existing ChartSpec based on a natural language edit instruction., refine_spec() (+18 more) + +### Community 2 - "Community 2" +Cohesion: 0.07 +Nodes (32): Azure AD SSO (MSAL), In-memory Sessions, base.html template, Docker app service, msal_shell.html template, app/data/analyzer.py (planned), app/data/loader.py (planned), LoadResult (+24 more) + +### Community 3 - "Community 3" +Cohesion: 0.12 +Nodes (24): TokenRequest, BaseModel, AxisSpec, ChartSpec, PanelSpec, Pydantic models for the chart specification - the contract between AI and render, SeriesSpec, ShadedFillSpec (+16 more) + +### Community 4 - "Community 4" +Cohesion: 0.10 +Nodes (20): _estimate_text_width(), _format_tick(), Axis rendering: gridlines, tick labels, axis lines., Estimate rendered text width for Roboto Condensed., Render X-axis with numeric tick labels., Format a tick value with adaptive precision., Render Y-axis with horizontal gridlines and tick labels. Args: side, render_x_axis_numeric() (+12 more) + +### Community 5 - "Community 5" +Cohesion: 0.10 +Nodes (22): app/renderer/annotations.py, app/renderer/axes.py, app/ai/brief_interpreter.py, app/models/chart_spec.py, ChartSpec, Claude Opus 4.6, app/renderer/engine.py, Iterative Refinement (+14 more) + +### Community 6 - "Community 6" +Cohesion: 0.23 +Nodes (11): _estimate_text_width(), legend_row_count(), Legend rendering - horizontal (line/bar) or vertical (pie) layouts., Multi-row legend, right-aligned, placed above the plot area. Items wrap to, Estimate rendered text width for Roboto Condensed. Uses per-character-class, Stacked column of legend items, placed to the right of the plot area., Return the number of horizontal rows the legend will occupy., Render a chart legend. Args: mode: "horizontal" — rows above plot a (+3 more) + +### Community 7 - "Community 7" +Cohesion: 0.22 +Nodes (10): close_browser(), _html_wrapper(), init_browser(), Playwright-based SVG export to PNG and PDF. Headless Chromium honours @font-fac, Start persistent Playwright/Chromium instance. Call once at app startup., Shut down browser gracefully. Call at app shutdown., Render SVG to PNG via headless Chromium. Returns raw PNG bytes., Render SVG to PDF via headless Chromium. The resulting PDF contains embedde (+2 more) + +### Community 8 - "Community 8" +Cohesion: 0.25 +Nodes (8): Data series rendering: lines, bars, areas, shaded fills., Render a bar chart series. Supports date and categorical x-axes., Render a line series as an SVG polyline., Render shaded regions between a data series and a reference series., render_bar_series(), _render_fill_segment(), render_line_series(), render_shaded_fill() + +### Community 9 - "Community 9" +Cohesion: 0.33 +Nodes (4): compute_layout(), PanelBounds, Canvas sizing and panel layout computation., Compute canvas dimensions and panel bounds. + +### Community 10 - "Community 10" +Cohesion: 0.40 +Nodes (5): _load_excel(), load_file(), Excel/CSV data loading and parsing., Load all sheets from an Excel file., Load an Excel or CSV file into a dict of DataFrames. Returns: Dict + +### Community 11 - "Community 11" +Cohesion: 0.67 +Nodes (3): _get_jwks_client(), validate_id_token(), token() + +### Community 13 - "Community 13" +Cohesion: 0.50 +Nodes (3): Pie and donut chart renderer., Draw a pie or donut chart. Args: inner_radius_ratio: 0.0 = solid pi, render_pie_series() + +## Knowledge Gaps +- **37 isolated node(s):** `allow`, `annotated-doc`, `itsdangerous`, `PyJWT`, `anthropic` (+32 more) + These have ≤1 connection - possible missing edges or undocumented components. +- **11 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes. + +## Suggested Questions +_Questions this graph is uniquely positioned to answer:_ + +- **Why does `render_chart()` connect `Community 0` to `Community 1`, `Community 3`, `Community 9`, `Community 6`?** + _High betweenness centrality (0.244) - this node is a cross-community bridge._ +- **Why does `_render_and_save()` connect `Community 1` to `Community 0`?** + _High betweenness centrality (0.149) - this node is a cross-community bridge._ +- **Why does `generate()` connect `Community 1` to `Community 10`?** + _High betweenness centrality (0.099) - this node is a cross-community bridge._ +- **Are the 7 inferred relationships involving `render_chart()` (e.g. with `main()` and `test_chart1_bond_yields()`) actually correct?** + _`render_chart()` has 7 INFERRED edges - model-reasoned connections that need verification._ +- **Are the 5 inferred relationships involving `_render_dual_y_panel_body()` (e.g. with `LinearScale` and `render_y_axis()`) actually correct?** + _`_render_dual_y_panel_body()` has 5 INFERRED edges - model-reasoned connections that need verification._ +- **What connects `Test script: render a multi-line chart matching PIMCO Chart 1 (bond yields) usin`, `Generate synthetic 10-year government bond yield data resembling the PDF chart.`, `Test all three chart types from the PIMCO reference PDF.` to the rest of the system?** + _114 weakly-connected nodes found - possible documentation gaps or missing edges._ +- **Should `Community 0` be split into smaller, more focused modules?** + _Cohesion score 0.08906882591093117 - nodes in this community are weakly interconnected._ \ No newline at end of file diff --git a/wiki/architecture/ppt-tool-structure.md b/wiki/architecture/ppt-tool-structure.md new file mode 100644 index 0000000..f760e25 --- /dev/null +++ b/wiki/architecture/ppt-tool-structure.md @@ -0,0 +1,2165 @@ +--- +tags: [architecture, graphify, ppt-tool] +updated: 2026-05-18 +--- + +# Graph Report - /Users/ai_leed/Documents/Projects/Oliver/ppt-tool (2026-05-18) + +## Corpus Check +- cluster-only mode — file stats not available + +## Summary +- 14175 nodes · 32818 edges · 602 communities (490 shown, 112 thin omitted) +- Extraction: 91% EXTRACTED · 9% INFERRED · 0% AMBIGUOUS · INFERRED: 2834 edges (avg confidence: 0.84) +- Token cost: 0 input · 0 output + +## Graph Freshness +- Built from commit: `54eddd70` +- Run `git rev-parse HEAD` and compare to check if the graph is stale. +- Run `graphify update .` after code changes (no API cost). + +## Community Hubs (Navigation) +- [[_COMMUNITY_Community 0|Community 0]] +- [[_COMMUNITY_Community 1|Community 1]] +- [[_COMMUNITY_Community 2|Community 2]] +- [[_COMMUNITY_Community 3|Community 3]] +- [[_COMMUNITY_Community 4|Community 4]] +- [[_COMMUNITY_Community 5|Community 5]] +- [[_COMMUNITY_Community 6|Community 6]] +- [[_COMMUNITY_Community 7|Community 7]] +- [[_COMMUNITY_Community 8|Community 8]] +- [[_COMMUNITY_Community 9|Community 9]] +- [[_COMMUNITY_Community 10|Community 10]] +- [[_COMMUNITY_Community 11|Community 11]] +- [[_COMMUNITY_Community 12|Community 12]] +- [[_COMMUNITY_Community 13|Community 13]] +- [[_COMMUNITY_Community 14|Community 14]] +- [[_COMMUNITY_Community 15|Community 15]] +- [[_COMMUNITY_Community 16|Community 16]] +- [[_COMMUNITY_Community 17|Community 17]] +- [[_COMMUNITY_Community 18|Community 18]] +- [[_COMMUNITY_Community 19|Community 19]] +- [[_COMMUNITY_Community 20|Community 20]] +- [[_COMMUNITY_Community 21|Community 21]] +- [[_COMMUNITY_Community 22|Community 22]] +- [[_COMMUNITY_Community 23|Community 23]] +- [[_COMMUNITY_Community 24|Community 24]] +- [[_COMMUNITY_Community 25|Community 25]] +- [[_COMMUNITY_Community 26|Community 26]] +- [[_COMMUNITY_Community 27|Community 27]] +- [[_COMMUNITY_Community 28|Community 28]] +- [[_COMMUNITY_Community 29|Community 29]] +- [[_COMMUNITY_Community 30|Community 30]] +- [[_COMMUNITY_Community 31|Community 31]] +- [[_COMMUNITY_Community 32|Community 32]] +- [[_COMMUNITY_Community 33|Community 33]] +- [[_COMMUNITY_Community 34|Community 34]] +- [[_COMMUNITY_Community 35|Community 35]] +- [[_COMMUNITY_Community 36|Community 36]] +- [[_COMMUNITY_Community 37|Community 37]] +- [[_COMMUNITY_Community 38|Community 38]] +- [[_COMMUNITY_Community 39|Community 39]] +- [[_COMMUNITY_Community 40|Community 40]] +- [[_COMMUNITY_Community 41|Community 41]] +- [[_COMMUNITY_Community 42|Community 42]] +- [[_COMMUNITY_Community 43|Community 43]] +- [[_COMMUNITY_Community 44|Community 44]] +- [[_COMMUNITY_Community 45|Community 45]] +- [[_COMMUNITY_Community 46|Community 46]] +- [[_COMMUNITY_Community 47|Community 47]] +- [[_COMMUNITY_Community 48|Community 48]] +- [[_COMMUNITY_Community 49|Community 49]] +- [[_COMMUNITY_Community 50|Community 50]] +- [[_COMMUNITY_Community 51|Community 51]] +- [[_COMMUNITY_Community 52|Community 52]] +- [[_COMMUNITY_Community 53|Community 53]] +- [[_COMMUNITY_Community 54|Community 54]] +- [[_COMMUNITY_Community 55|Community 55]] +- [[_COMMUNITY_Community 56|Community 56]] +- [[_COMMUNITY_Community 57|Community 57]] +- [[_COMMUNITY_Community 58|Community 58]] +- [[_COMMUNITY_Community 59|Community 59]] +- [[_COMMUNITY_Community 60|Community 60]] +- [[_COMMUNITY_Community 61|Community 61]] +- [[_COMMUNITY_Community 62|Community 62]] +- [[_COMMUNITY_Community 63|Community 63]] +- [[_COMMUNITY_Community 64|Community 64]] +- [[_COMMUNITY_Community 65|Community 65]] +- [[_COMMUNITY_Community 66|Community 66]] +- [[_COMMUNITY_Community 67|Community 67]] +- [[_COMMUNITY_Community 68|Community 68]] +- [[_COMMUNITY_Community 69|Community 69]] +- [[_COMMUNITY_Community 70|Community 70]] +- [[_COMMUNITY_Community 71|Community 71]] +- [[_COMMUNITY_Community 72|Community 72]] +- [[_COMMUNITY_Community 73|Community 73]] +- [[_COMMUNITY_Community 74|Community 74]] +- [[_COMMUNITY_Community 75|Community 75]] +- [[_COMMUNITY_Community 76|Community 76]] +- [[_COMMUNITY_Community 77|Community 77]] +- [[_COMMUNITY_Community 78|Community 78]] +- [[_COMMUNITY_Community 79|Community 79]] +- [[_COMMUNITY_Community 80|Community 80]] +- [[_COMMUNITY_Community 81|Community 81]] +- [[_COMMUNITY_Community 82|Community 82]] +- [[_COMMUNITY_Community 83|Community 83]] +- [[_COMMUNITY_Community 84|Community 84]] +- [[_COMMUNITY_Community 85|Community 85]] +- [[_COMMUNITY_Community 86|Community 86]] +- [[_COMMUNITY_Community 87|Community 87]] +- [[_COMMUNITY_Community 88|Community 88]] +- [[_COMMUNITY_Community 89|Community 89]] +- [[_COMMUNITY_Community 90|Community 90]] +- [[_COMMUNITY_Community 91|Community 91]] +- [[_COMMUNITY_Community 92|Community 92]] +- [[_COMMUNITY_Community 93|Community 93]] +- [[_COMMUNITY_Community 94|Community 94]] +- [[_COMMUNITY_Community 95|Community 95]] +- [[_COMMUNITY_Community 96|Community 96]] +- [[_COMMUNITY_Community 97|Community 97]] +- [[_COMMUNITY_Community 98|Community 98]] +- [[_COMMUNITY_Community 99|Community 99]] +- [[_COMMUNITY_Community 100|Community 100]] +- [[_COMMUNITY_Community 101|Community 101]] +- [[_COMMUNITY_Community 102|Community 102]] +- [[_COMMUNITY_Community 103|Community 103]] +- [[_COMMUNITY_Community 104|Community 104]] +- [[_COMMUNITY_Community 105|Community 105]] +- [[_COMMUNITY_Community 106|Community 106]] +- [[_COMMUNITY_Community 107|Community 107]] +- [[_COMMUNITY_Community 108|Community 108]] +- [[_COMMUNITY_Community 109|Community 109]] +- [[_COMMUNITY_Community 110|Community 110]] +- [[_COMMUNITY_Community 111|Community 111]] +- [[_COMMUNITY_Community 112|Community 112]] +- [[_COMMUNITY_Community 113|Community 113]] +- [[_COMMUNITY_Community 114|Community 114]] +- [[_COMMUNITY_Community 115|Community 115]] +- [[_COMMUNITY_Community 116|Community 116]] +- [[_COMMUNITY_Community 117|Community 117]] +- [[_COMMUNITY_Community 118|Community 118]] +- [[_COMMUNITY_Community 119|Community 119]] +- [[_COMMUNITY_Community 120|Community 120]] +- [[_COMMUNITY_Community 121|Community 121]] +- [[_COMMUNITY_Community 122|Community 122]] +- [[_COMMUNITY_Community 123|Community 123]] +- [[_COMMUNITY_Community 124|Community 124]] +- [[_COMMUNITY_Community 125|Community 125]] +- [[_COMMUNITY_Community 126|Community 126]] +- [[_COMMUNITY_Community 127|Community 127]] +- [[_COMMUNITY_Community 128|Community 128]] +- [[_COMMUNITY_Community 129|Community 129]] +- [[_COMMUNITY_Community 130|Community 130]] +- [[_COMMUNITY_Community 131|Community 131]] +- [[_COMMUNITY_Community 132|Community 132]] +- [[_COMMUNITY_Community 133|Community 133]] +- [[_COMMUNITY_Community 134|Community 134]] +- [[_COMMUNITY_Community 135|Community 135]] +- [[_COMMUNITY_Community 136|Community 136]] +- [[_COMMUNITY_Community 137|Community 137]] +- [[_COMMUNITY_Community 138|Community 138]] +- [[_COMMUNITY_Community 139|Community 139]] +- [[_COMMUNITY_Community 140|Community 140]] +- [[_COMMUNITY_Community 141|Community 141]] +- [[_COMMUNITY_Community 142|Community 142]] +- [[_COMMUNITY_Community 143|Community 143]] +- [[_COMMUNITY_Community 144|Community 144]] +- [[_COMMUNITY_Community 145|Community 145]] +- [[_COMMUNITY_Community 146|Community 146]] +- [[_COMMUNITY_Community 147|Community 147]] +- [[_COMMUNITY_Community 148|Community 148]] +- [[_COMMUNITY_Community 149|Community 149]] +- [[_COMMUNITY_Community 150|Community 150]] +- [[_COMMUNITY_Community 151|Community 151]] +- [[_COMMUNITY_Community 152|Community 152]] +- [[_COMMUNITY_Community 153|Community 153]] +- [[_COMMUNITY_Community 154|Community 154]] +- [[_COMMUNITY_Community 155|Community 155]] +- [[_COMMUNITY_Community 156|Community 156]] +- [[_COMMUNITY_Community 157|Community 157]] +- [[_COMMUNITY_Community 158|Community 158]] +- [[_COMMUNITY_Community 159|Community 159]] +- [[_COMMUNITY_Community 160|Community 160]] +- [[_COMMUNITY_Community 161|Community 161]] +- [[_COMMUNITY_Community 162|Community 162]] +- [[_COMMUNITY_Community 163|Community 163]] +- [[_COMMUNITY_Community 164|Community 164]] +- [[_COMMUNITY_Community 165|Community 165]] +- [[_COMMUNITY_Community 166|Community 166]] +- [[_COMMUNITY_Community 167|Community 167]] +- [[_COMMUNITY_Community 168|Community 168]] +- [[_COMMUNITY_Community 169|Community 169]] +- [[_COMMUNITY_Community 170|Community 170]] +- [[_COMMUNITY_Community 171|Community 171]] +- [[_COMMUNITY_Community 172|Community 172]] +- [[_COMMUNITY_Community 173|Community 173]] +- [[_COMMUNITY_Community 174|Community 174]] +- [[_COMMUNITY_Community 175|Community 175]] +- [[_COMMUNITY_Community 176|Community 176]] +- [[_COMMUNITY_Community 177|Community 177]] +- [[_COMMUNITY_Community 178|Community 178]] +- [[_COMMUNITY_Community 179|Community 179]] +- [[_COMMUNITY_Community 180|Community 180]] +- [[_COMMUNITY_Community 181|Community 181]] +- [[_COMMUNITY_Community 182|Community 182]] +- [[_COMMUNITY_Community 183|Community 183]] +- [[_COMMUNITY_Community 184|Community 184]] +- [[_COMMUNITY_Community 185|Community 185]] +- [[_COMMUNITY_Community 186|Community 186]] +- [[_COMMUNITY_Community 187|Community 187]] +- [[_COMMUNITY_Community 188|Community 188]] +- [[_COMMUNITY_Community 189|Community 189]] +- [[_COMMUNITY_Community 190|Community 190]] +- [[_COMMUNITY_Community 191|Community 191]] +- [[_COMMUNITY_Community 192|Community 192]] +- [[_COMMUNITY_Community 193|Community 193]] +- [[_COMMUNITY_Community 194|Community 194]] +- [[_COMMUNITY_Community 195|Community 195]] +- [[_COMMUNITY_Community 196|Community 196]] +- [[_COMMUNITY_Community 197|Community 197]] +- [[_COMMUNITY_Community 198|Community 198]] +- [[_COMMUNITY_Community 199|Community 199]] +- [[_COMMUNITY_Community 200|Community 200]] +- [[_COMMUNITY_Community 201|Community 201]] +- [[_COMMUNITY_Community 202|Community 202]] +- [[_COMMUNITY_Community 203|Community 203]] +- [[_COMMUNITY_Community 204|Community 204]] +- [[_COMMUNITY_Community 205|Community 205]] +- [[_COMMUNITY_Community 206|Community 206]] +- [[_COMMUNITY_Community 207|Community 207]] +- [[_COMMUNITY_Community 208|Community 208]] +- [[_COMMUNITY_Community 209|Community 209]] +- [[_COMMUNITY_Community 210|Community 210]] +- [[_COMMUNITY_Community 211|Community 211]] +- [[_COMMUNITY_Community 212|Community 212]] +- [[_COMMUNITY_Community 213|Community 213]] +- [[_COMMUNITY_Community 214|Community 214]] +- [[_COMMUNITY_Community 215|Community 215]] +- [[_COMMUNITY_Community 216|Community 216]] +- [[_COMMUNITY_Community 217|Community 217]] +- [[_COMMUNITY_Community 218|Community 218]] +- [[_COMMUNITY_Community 219|Community 219]] +- [[_COMMUNITY_Community 220|Community 220]] +- [[_COMMUNITY_Community 221|Community 221]] +- [[_COMMUNITY_Community 222|Community 222]] +- [[_COMMUNITY_Community 223|Community 223]] +- [[_COMMUNITY_Community 224|Community 224]] +- [[_COMMUNITY_Community 225|Community 225]] +- [[_COMMUNITY_Community 226|Community 226]] +- [[_COMMUNITY_Community 227|Community 227]] +- [[_COMMUNITY_Community 228|Community 228]] +- [[_COMMUNITY_Community 229|Community 229]] +- [[_COMMUNITY_Community 230|Community 230]] +- [[_COMMUNITY_Community 231|Community 231]] +- [[_COMMUNITY_Community 232|Community 232]] +- [[_COMMUNITY_Community 233|Community 233]] +- [[_COMMUNITY_Community 234|Community 234]] +- [[_COMMUNITY_Community 235|Community 235]] +- [[_COMMUNITY_Community 236|Community 236]] +- [[_COMMUNITY_Community 237|Community 237]] +- [[_COMMUNITY_Community 238|Community 238]] +- [[_COMMUNITY_Community 239|Community 239]] +- [[_COMMUNITY_Community 240|Community 240]] +- [[_COMMUNITY_Community 241|Community 241]] +- [[_COMMUNITY_Community 242|Community 242]] +- [[_COMMUNITY_Community 243|Community 243]] +- [[_COMMUNITY_Community 244|Community 244]] +- [[_COMMUNITY_Community 245|Community 245]] +- [[_COMMUNITY_Community 246|Community 246]] +- [[_COMMUNITY_Community 247|Community 247]] +- [[_COMMUNITY_Community 248|Community 248]] +- [[_COMMUNITY_Community 249|Community 249]] +- [[_COMMUNITY_Community 250|Community 250]] +- [[_COMMUNITY_Community 251|Community 251]] +- [[_COMMUNITY_Community 252|Community 252]] +- [[_COMMUNITY_Community 253|Community 253]] +- [[_COMMUNITY_Community 254|Community 254]] +- [[_COMMUNITY_Community 255|Community 255]] +- [[_COMMUNITY_Community 256|Community 256]] +- [[_COMMUNITY_Community 257|Community 257]] +- [[_COMMUNITY_Community 258|Community 258]] +- [[_COMMUNITY_Community 259|Community 259]] +- [[_COMMUNITY_Community 260|Community 260]] +- [[_COMMUNITY_Community 261|Community 261]] +- [[_COMMUNITY_Community 262|Community 262]] +- [[_COMMUNITY_Community 263|Community 263]] +- [[_COMMUNITY_Community 264|Community 264]] +- [[_COMMUNITY_Community 265|Community 265]] +- [[_COMMUNITY_Community 266|Community 266]] +- [[_COMMUNITY_Community 267|Community 267]] +- [[_COMMUNITY_Community 268|Community 268]] +- [[_COMMUNITY_Community 269|Community 269]] +- [[_COMMUNITY_Community 270|Community 270]] +- [[_COMMUNITY_Community 271|Community 271]] +- [[_COMMUNITY_Community 272|Community 272]] +- [[_COMMUNITY_Community 273|Community 273]] +- [[_COMMUNITY_Community 274|Community 274]] +- [[_COMMUNITY_Community 275|Community 275]] +- [[_COMMUNITY_Community 276|Community 276]] +- [[_COMMUNITY_Community 277|Community 277]] +- [[_COMMUNITY_Community 278|Community 278]] +- [[_COMMUNITY_Community 279|Community 279]] +- [[_COMMUNITY_Community 280|Community 280]] +- [[_COMMUNITY_Community 281|Community 281]] +- [[_COMMUNITY_Community 282|Community 282]] +- [[_COMMUNITY_Community 283|Community 283]] +- [[_COMMUNITY_Community 284|Community 284]] +- [[_COMMUNITY_Community 285|Community 285]] +- [[_COMMUNITY_Community 286|Community 286]] +- [[_COMMUNITY_Community 287|Community 287]] +- [[_COMMUNITY_Community 288|Community 288]] +- [[_COMMUNITY_Community 289|Community 289]] +- [[_COMMUNITY_Community 290|Community 290]] +- [[_COMMUNITY_Community 291|Community 291]] +- [[_COMMUNITY_Community 292|Community 292]] +- [[_COMMUNITY_Community 293|Community 293]] +- [[_COMMUNITY_Community 294|Community 294]] +- [[_COMMUNITY_Community 295|Community 295]] +- [[_COMMUNITY_Community 296|Community 296]] +- [[_COMMUNITY_Community 297|Community 297]] +- [[_COMMUNITY_Community 298|Community 298]] +- [[_COMMUNITY_Community 299|Community 299]] +- [[_COMMUNITY_Community 300|Community 300]] +- [[_COMMUNITY_Community 301|Community 301]] +- [[_COMMUNITY_Community 302|Community 302]] +- [[_COMMUNITY_Community 303|Community 303]] +- [[_COMMUNITY_Community 304|Community 304]] +- [[_COMMUNITY_Community 305|Community 305]] +- [[_COMMUNITY_Community 306|Community 306]] +- [[_COMMUNITY_Community 307|Community 307]] +- [[_COMMUNITY_Community 308|Community 308]] +- [[_COMMUNITY_Community 309|Community 309]] +- [[_COMMUNITY_Community 310|Community 310]] +- [[_COMMUNITY_Community 311|Community 311]] +- [[_COMMUNITY_Community 312|Community 312]] +- [[_COMMUNITY_Community 313|Community 313]] +- [[_COMMUNITY_Community 314|Community 314]] +- [[_COMMUNITY_Community 315|Community 315]] +- [[_COMMUNITY_Community 316|Community 316]] +- [[_COMMUNITY_Community 317|Community 317]] +- [[_COMMUNITY_Community 318|Community 318]] +- [[_COMMUNITY_Community 319|Community 319]] +- [[_COMMUNITY_Community 320|Community 320]] +- [[_COMMUNITY_Community 321|Community 321]] +- [[_COMMUNITY_Community 322|Community 322]] +- [[_COMMUNITY_Community 323|Community 323]] +- [[_COMMUNITY_Community 324|Community 324]] +- [[_COMMUNITY_Community 325|Community 325]] +- [[_COMMUNITY_Community 326|Community 326]] +- [[_COMMUNITY_Community 327|Community 327]] +- [[_COMMUNITY_Community 328|Community 328]] +- [[_COMMUNITY_Community 329|Community 329]] +- [[_COMMUNITY_Community 330|Community 330]] +- [[_COMMUNITY_Community 331|Community 331]] +- [[_COMMUNITY_Community 332|Community 332]] +- [[_COMMUNITY_Community 333|Community 333]] +- [[_COMMUNITY_Community 334|Community 334]] +- [[_COMMUNITY_Community 335|Community 335]] +- [[_COMMUNITY_Community 336|Community 336]] +- [[_COMMUNITY_Community 337|Community 337]] +- [[_COMMUNITY_Community 338|Community 338]] +- [[_COMMUNITY_Community 339|Community 339]] +- [[_COMMUNITY_Community 340|Community 340]] +- [[_COMMUNITY_Community 341|Community 341]] +- [[_COMMUNITY_Community 342|Community 342]] +- [[_COMMUNITY_Community 343|Community 343]] +- [[_COMMUNITY_Community 344|Community 344]] +- [[_COMMUNITY_Community 345|Community 345]] +- [[_COMMUNITY_Community 346|Community 346]] +- [[_COMMUNITY_Community 347|Community 347]] +- [[_COMMUNITY_Community 348|Community 348]] +- [[_COMMUNITY_Community 349|Community 349]] +- [[_COMMUNITY_Community 350|Community 350]] +- [[_COMMUNITY_Community 351|Community 351]] +- [[_COMMUNITY_Community 352|Community 352]] +- [[_COMMUNITY_Community 353|Community 353]] +- [[_COMMUNITY_Community 354|Community 354]] +- [[_COMMUNITY_Community 355|Community 355]] +- [[_COMMUNITY_Community 356|Community 356]] +- [[_COMMUNITY_Community 357|Community 357]] +- [[_COMMUNITY_Community 358|Community 358]] +- [[_COMMUNITY_Community 359|Community 359]] +- [[_COMMUNITY_Community 360|Community 360]] +- [[_COMMUNITY_Community 361|Community 361]] +- [[_COMMUNITY_Community 362|Community 362]] +- [[_COMMUNITY_Community 363|Community 363]] +- [[_COMMUNITY_Community 364|Community 364]] +- [[_COMMUNITY_Community 365|Community 365]] +- [[_COMMUNITY_Community 366|Community 366]] +- [[_COMMUNITY_Community 367|Community 367]] +- [[_COMMUNITY_Community 368|Community 368]] +- [[_COMMUNITY_Community 369|Community 369]] +- [[_COMMUNITY_Community 370|Community 370]] +- [[_COMMUNITY_Community 371|Community 371]] +- [[_COMMUNITY_Community 372|Community 372]] +- [[_COMMUNITY_Community 373|Community 373]] +- [[_COMMUNITY_Community 374|Community 374]] +- [[_COMMUNITY_Community 375|Community 375]] +- [[_COMMUNITY_Community 376|Community 376]] +- [[_COMMUNITY_Community 377|Community 377]] +- [[_COMMUNITY_Community 378|Community 378]] +- [[_COMMUNITY_Community 379|Community 379]] +- [[_COMMUNITY_Community 381|Community 381]] +- [[_COMMUNITY_Community 382|Community 382]] +- [[_COMMUNITY_Community 383|Community 383]] +- [[_COMMUNITY_Community 384|Community 384]] +- [[_COMMUNITY_Community 385|Community 385]] +- [[_COMMUNITY_Community 386|Community 386]] +- [[_COMMUNITY_Community 387|Community 387]] +- [[_COMMUNITY_Community 388|Community 388]] +- [[_COMMUNITY_Community 389|Community 389]] +- [[_COMMUNITY_Community 390|Community 390]] +- [[_COMMUNITY_Community 391|Community 391]] +- [[_COMMUNITY_Community 392|Community 392]] +- [[_COMMUNITY_Community 393|Community 393]] +- [[_COMMUNITY_Community 394|Community 394]] +- [[_COMMUNITY_Community 395|Community 395]] +- [[_COMMUNITY_Community 396|Community 396]] +- [[_COMMUNITY_Community 397|Community 397]] +- [[_COMMUNITY_Community 398|Community 398]] +- [[_COMMUNITY_Community 399|Community 399]] +- [[_COMMUNITY_Community 400|Community 400]] +- [[_COMMUNITY_Community 401|Community 401]] +- [[_COMMUNITY_Community 402|Community 402]] +- [[_COMMUNITY_Community 403|Community 403]] +- [[_COMMUNITY_Community 404|Community 404]] +- [[_COMMUNITY_Community 405|Community 405]] +- [[_COMMUNITY_Community 406|Community 406]] +- [[_COMMUNITY_Community 407|Community 407]] +- [[_COMMUNITY_Community 408|Community 408]] +- [[_COMMUNITY_Community 409|Community 409]] +- [[_COMMUNITY_Community 410|Community 410]] +- [[_COMMUNITY_Community 411|Community 411]] +- [[_COMMUNITY_Community 412|Community 412]] +- [[_COMMUNITY_Community 413|Community 413]] +- [[_COMMUNITY_Community 414|Community 414]] +- [[_COMMUNITY_Community 415|Community 415]] +- [[_COMMUNITY_Community 416|Community 416]] +- [[_COMMUNITY_Community 417|Community 417]] +- [[_COMMUNITY_Community 418|Community 418]] +- [[_COMMUNITY_Community 420|Community 420]] +- [[_COMMUNITY_Community 421|Community 421]] +- [[_COMMUNITY_Community 422|Community 422]] +- [[_COMMUNITY_Community 423|Community 423]] +- [[_COMMUNITY_Community 424|Community 424]] +- [[_COMMUNITY_Community 427|Community 427]] +- [[_COMMUNITY_Community 428|Community 428]] +- [[_COMMUNITY_Community 429|Community 429]] +- [[_COMMUNITY_Community 430|Community 430]] +- [[_COMMUNITY_Community 431|Community 431]] +- [[_COMMUNITY_Community 432|Community 432]] +- [[_COMMUNITY_Community 433|Community 433]] +- [[_COMMUNITY_Community 434|Community 434]] +- [[_COMMUNITY_Community 435|Community 435]] +- [[_COMMUNITY_Community 436|Community 436]] +- [[_COMMUNITY_Community 437|Community 437]] +- [[_COMMUNITY_Community 438|Community 438]] +- [[_COMMUNITY_Community 439|Community 439]] +- [[_COMMUNITY_Community 440|Community 440]] +- [[_COMMUNITY_Community 441|Community 441]] +- [[_COMMUNITY_Community 442|Community 442]] +- [[_COMMUNITY_Community 443|Community 443]] +- [[_COMMUNITY_Community 444|Community 444]] +- [[_COMMUNITY_Community 445|Community 445]] +- [[_COMMUNITY_Community 446|Community 446]] +- [[_COMMUNITY_Community 447|Community 447]] +- [[_COMMUNITY_Community 448|Community 448]] +- [[_COMMUNITY_Community 449|Community 449]] +- [[_COMMUNITY_Community 450|Community 450]] +- [[_COMMUNITY_Community 451|Community 451]] +- [[_COMMUNITY_Community 452|Community 452]] +- [[_COMMUNITY_Community 453|Community 453]] +- [[_COMMUNITY_Community 455|Community 455]] +- [[_COMMUNITY_Community 456|Community 456]] +- [[_COMMUNITY_Community 458|Community 458]] +- [[_COMMUNITY_Community 459|Community 459]] +- [[_COMMUNITY_Community 460|Community 460]] +- [[_COMMUNITY_Community 461|Community 461]] +- [[_COMMUNITY_Community 462|Community 462]] +- [[_COMMUNITY_Community 463|Community 463]] +- [[_COMMUNITY_Community 464|Community 464]] +- [[_COMMUNITY_Community 465|Community 465]] +- [[_COMMUNITY_Community 466|Community 466]] +- [[_COMMUNITY_Community 467|Community 467]] +- [[_COMMUNITY_Community 468|Community 468]] +- [[_COMMUNITY_Community 469|Community 469]] +- [[_COMMUNITY_Community 470|Community 470]] +- [[_COMMUNITY_Community 471|Community 471]] +- [[_COMMUNITY_Community 472|Community 472]] +- [[_COMMUNITY_Community 473|Community 473]] +- [[_COMMUNITY_Community 474|Community 474]] +- [[_COMMUNITY_Community 475|Community 475]] +- [[_COMMUNITY_Community 476|Community 476]] +- [[_COMMUNITY_Community 477|Community 477]] +- [[_COMMUNITY_Community 478|Community 478]] +- [[_COMMUNITY_Community 479|Community 479]] +- [[_COMMUNITY_Community 481|Community 481]] +- [[_COMMUNITY_Community 484|Community 484]] +- [[_COMMUNITY_Community 485|Community 485]] +- [[_COMMUNITY_Community 490|Community 490]] +- [[_COMMUNITY_Community 491|Community 491]] +- [[_COMMUNITY_Community 495|Community 495]] +- [[_COMMUNITY_Community 496|Community 496]] +- [[_COMMUNITY_Community 497|Community 497]] +- [[_COMMUNITY_Community 500|Community 500]] +- [[_COMMUNITY_Community 501|Community 501]] +- [[_COMMUNITY_Community 502|Community 502]] +- [[_COMMUNITY_Community 503|Community 503]] +- [[_COMMUNITY_Community 504|Community 504]] +- [[_COMMUNITY_Community 505|Community 505]] +- [[_COMMUNITY_Community 506|Community 506]] +- [[_COMMUNITY_Community 507|Community 507]] +- [[_COMMUNITY_Community 508|Community 508]] +- [[_COMMUNITY_Community 509|Community 509]] +- [[_COMMUNITY_Community 510|Community 510]] +- [[_COMMUNITY_Community 511|Community 511]] +- [[_COMMUNITY_Community 577|Community 577]] +- [[_COMMUNITY_Community 578|Community 578]] +- [[_COMMUNITY_Community 579|Community 579]] +- [[_COMMUNITY_Community 591|Community 591]] +- [[_COMMUNITY_Community 593|Community 593]] +- [[_COMMUNITY_Community 594|Community 594]] +- [[_COMMUNITY_Community 595|Community 595]] +- [[_COMMUNITY_Community 596|Community 596]] +- [[_COMMUNITY_Community 597|Community 597]] +- [[_COMMUNITY_Community 598|Community 598]] +- [[_COMMUNITY_Community 599|Community 599]] +- [[_COMMUNITY_Community 600|Community 600]] +- [[_COMMUNITY_Community 601|Community 601]] + +## God Nodes (most connected - your core abstractions) +1. `Ga()` - 325 edges +2. `Gm()` - 163 edges +3. `Hn()` - 152 edges +4. `n()` - 94 edges +5. `a()` - 93 edges +6. `la()` - 93 edges +7. `t()` - 92 edges +8. `lr()` - 91 edges +9. `map()` - 86 edges +10. `d()` - 84 edges + +## Surprising Connections (you probably didn't know these) +- `Magnifying Glass Bold Icon` --conceptually_related_to--> `Oliver DeckForge Platform` [INFERRED] + backend/static/icons/bold/magnifying-glass-bold.svg → docs/README.md +- `Magic Wand Bold Icon` --conceptually_related_to--> `Presentation Generation Pipeline` [INFERRED] + backend/static/icons/bold/magic-wand-bold.svg → docs/project/architecture.md +- `Download Bold Icon` --conceptually_related_to--> `PPTX Export` [INFERRED] + backend/static/icons/bold/download-bold.svg → docs/project/architecture.md +- `Master deck parser: extract layouts from a PPTX master/template file. Pipeline` --rationale_for--> `MasterDeckParserService` [EXTRACTED] + backend/services/master_deck_parser_service.py → docs/project/architecture.md +- `Brand Enforcement Service: apply client brand rules to generated content and PPT` --rationale_for--> `BrandEnforcementService` [EXTRACTED] + backend/services/brand_enforcement_service.py → docs/project/architecture.md + +## Communities (602 total, 112 thin omitted) + +### Community 0 - "Community 0" +Cohesion: 0.01 +Nodes (191): _0(), _3(), _8(), A7(), A9(), Ai(), An(), Ao() (+183 more) + +### Community 1 - "Community 1" +Cohesion: 0.01 +Nodes (270): _1(), _3(), $4(), _8(), $9(), AB(), Al(), AW() (+262 more) + +### Community 2 - "Community 2" +Cohesion: 0.01 +Nodes (395): Acorn Bold Icon, Airplane In Flight Bold Icon, Airplane Tilt Bold Icon, Airplay Bold Icon, Alarm Bold Icon, Alien Bold Icon, Align Bottom Simple Bold Icon, Align Center Horizontal Bold Icon (+387 more) + +### Community 3 - "Community 3" +Cohesion: 0.01 +Nodes (268): Align Center Vertical Bold Icon, Align Right Bold Icon, Align Top Simple Bold Icon, Amazon Logo Bold Icon, Ambulance Bold Icon, App Store Logo Bold Icon, Approximate Equals Bold Icon, Arrow Bend Left Up Bold Icon (+260 more) + +### Community 4 - "Community 4" +Cohesion: 0.01 +Nodes (115): ae(), at(), cL(), cR(), displayable(), e2(), e4(), e5() (+107 more) + +### Community 5 - "Community 5" +Cohesion: 0.01 +Nodes (219): Address Book Bold Icon, Air Traffic Control Bold Icon, Airplane Takeoff Bold Icon, Align Bottom Bold Icon, Align Left Bold Icon, Align Left Simple Bold Icon, App Window Bold Icon, Apple Logo Bold Icon (+211 more) + +### Community 6 - "Community 6" +Cohesion: 0.01 +Nodes (156): $, a_, a0, a1, a2, a3, a4, a5 (+148 more) + +### Community 7 - "Community 7" +Cohesion: 0.01 +Nodes (149): $, a_, a0, a1, a2, a3, a4, a5 (+141 more) + +### Community 8 - "Community 8" +Cohesion: 0.07 +Nodes (144): _(), _7(), Ae(), Ag(), Ak(), AR(), As(), At() (+136 more) + +### Community 9 - "Community 9" +Cohesion: 0.05 +Nodes (54): _, a(), addPostProcessor(), applyPatches(), b, c, cacheUserLanguage(), concat() (+46 more) + +### Community 10 - "Community 10" +Cohesion: 0.02 +Nodes (68): CardProps, Schema, Schema, HeadlineDescriptionWithImageLayout(), Schema, HeadlineTextWithBulletsAndStatsData, Schema, DataType (+60 more) + +### Community 11 - "Community 11" +Cohesion: 0.02 +Nodes (143): Arrow Bend Right Down Bold Icon, Arrow Bend Up Right Bold Icon, Arrow Circle Left Bold Icon, Arrows Horizontal Bold Icon, Arrows Out Simple Bold Icon, Asclepius Bold Icon, Backspace Bold Icon, Battery Vertical Empty Bold Icon (+135 more) + +### Community 12 - "Community 12" +Cohesion: 0.04 +Nodes (29): e5, e8, ea(), ec, ed(), ee(), eH(), ei (+21 more) + +### Community 13 - "Community 13" +Cohesion: 0.04 +Nodes (97): Admin router for user management. Super Admin only., Providers(), NAV_ITEMS, NavItem, AuthGuard(), PUBLIC_PATHS, CHART_TYPES, ChartDataEditor() (+89 more) + +### Community 14 - "Community 14" +Cohesion: 0.05 +Nodes (132): _2(), A0(), A6(), A8(), AH(), AJ(), Aq(), Ax() (+124 more) + +### Community 15 - "Community 15" +Cohesion: 0.05 +Nodes (130): a(), A1(), A3(), Aa(), Ak(), An(), As(), Az() (+122 more) + +### Community 16 - "Community 16" +Cohesion: 0.06 +Nodes (106): a(), B4(), B6(), B7(), B9(), Bj(), Bk(), Br() (+98 more) + +### Community 17 - "Community 17" +Cohesion: 0.07 +Nodes (114): bb(), be(), bi(), bm(), bn(), bo(), bs(), c$() (+106 more) + +### Community 18 - "Community 18" +Cohesion: 0.05 +Nodes (31): _, a, addPostProcessor(), b, c(), cacheUserLanguage(), d(), e() (+23 more) + +### Community 19 - "Community 19" +Cohesion: 0.05 +Nodes (12): c(), {defaultType:e}, E(), eb, i(), k(), td(), tm (+4 more) + +### Community 20 - "Community 20" +Cohesion: 0.04 +Nodes (50): BrandEnforcementService, all(), PptxAutoShapeBoxModel, PptxBoxShapeEnum, PptxChartBoxModel, PptxChartDataModel, PptxConnectorModel, PptxFillModel (+42 more) + +### Community 21 - "Community 21" +Cohesion: 0.03 +Nodes (71): analytics_ai_usage(), analytics_overview(), analytics_performance(), analytics_quality(), analytics_usage(), Analytics endpoints for admin dashboard., Usage metrics: decks per day time series, top users., Quality metrics: status distribution, average comments. (+63 more) + +### Community 22 - "Community 22" +Cohesion: 0.03 +Nodes (70): delete_logo(), _ensure_dir(), get_brand_config(), Admin router for brand configuration management., upload_guideline(), upload_logo(), bulk_delete_layouts(), _deck_dir() (+62 more) + +### Community 23 - "Community 23" +Cohesion: 0.03 +Nodes (97): ca(), D1(), D3(), D5(), D6(), D7(), D8(), D9() (+89 more) + +### Community 24 - "Community 24" +Cohesion: 0.03 +Nodes (72): BasicInfoSlideData, BasicInfoSlideLayout(), basicInfoSlideSchema, BulletIconsOnlySlideData, BulletIconsOnlySlideLayout(), BulletWithIconsSlideData, BulletWithIconsSlideLayoutProps, bulletWithIconsSlideSchema (+64 more) + +### Community 25 - "Community 25" +Cohesion: 0.04 +Nodes (39): fetchAnalytics(), DashboardApi, getHeader(), getHeaderForFormData(), ImagesApi, IconSearch, ImageGenerate, ImageSearch (+31 more) + +### Community 26 - "Community 26" +Cohesion: 0.04 +Nodes (95): _$(), Ai(), Da(), Dc(), De(), Df(), Dg(), DH() (+87 more) + +### Community 27 - "Community 27" +Cohesion: 0.06 +Nodes (38): _, a(), b, C, D, E, ea(), ec() (+30 more) + +### Community 28 - "Community 28" +Cohesion: 0.05 +Nodes (58): {createFromFetch:l}, {createFromFetch:m,encodeReply:y}, _, a, b, c, d, E (+50 more) + +### Community 29 - "Community 29" +Cohesion: 0.03 +Nodes (90): gf(), _5(), ba(), bc(), bd(), bf(), bg(), bl() (+82 more) + +### Community 30 - "Community 30" +Cohesion: 0.03 +Nodes (45): {dom:a,text:c,slice:u}, {dom:o,text:s}, e0, e1, e2, e6, {focusNode:t,focusOffset:n}, na (+37 more) + +### Community 31 - "Community 31" +Cohesion: 0.15 +Nodes (68): _(), A(), b(), c(), clamp(), D(), e(), ei() (+60 more) + +### Community 32 - "Community 32" +Cohesion: 0.04 +Nodes (82): A5(), Ab(), Ad(), cG(), E5(), eah(), en7(), enC() (+74 more) + +### Community 33 - "Community 33" +Cohesion: 0.06 +Nodes (71): a2(), a3(), a8(), a9(), aA(), aG(), aH(), aI() (+63 more) + +### Community 34 - "Community 34" +Cohesion: 0.04 +Nodes (78): Arrows Out Line Vertical Bold Icon, At Bold Icon, Atom Bold Icon, Avocado Bold Icon, Basketball Bold Icon, Beach Ball Bold Icon, Bookmark Bold Icon, Brackets Angle Bold Icon (+70 more) + +### Community 35 - "Community 35" +Cohesion: 0.05 +Nodes (60): addProseMirrorPlugins(), [D,T], e4, e6, ed(), ee, ef(), ej (+52 more) + +### Community 36 - "Community 36" +Cohesion: 0.06 +Nodes (72): content, description, post, get, components, schemas, application/json, multipart/form-data (+64 more) + +### Community 37 - "Community 37" +Cohesion: 0.05 +Nodes (63): aC(), ai(), aj(), al(), am(), ar(), au(), ax() (+55 more) + +### Community 38 - "Community 38" +Cohesion: 0.07 +Nodes (39): JobStatus, AnthropicConfigProps, ConfigurationSelects(), ConfigurationSelectsProps, SlideOption, CustomConfigProps, ButtonState, DALLE_3_QUALITY_OPTIONS (+31 more) + +### Community 39 - "Community 39" +Cohesion: 0.04 +Nodes (70): Backpack Bold Icon, Barcode Bold Icon, Battery Vertical Medium Bold Icon, Bell Bold Icon, Bell Simple Bold Icon, Bell Slash Bold Icon, Bell Z Bold Icon, Bicycle Bold Icon (+62 more) + +### Community 40 - "Community 40" +Cohesion: 0.07 +Nodes (50): $(), A(), c(), D, e$, ea, eb(), ec() (+42 more) + +### Community 41 - "Community 41" +Cohesion: 0.07 +Nodes (46): $, A(), C(), D, E, ea, eb, ec (+38 more) + +### Community 42 - "Community 42" +Cohesion: 0.08 +Nodes (6): A, B, h, N, o, t + +### Community 43 - "Community 43" +Cohesion: 0.05 +Nodes (5): c, i(), size(), t0, tR() + +### Community 44 - "Community 44" +Cohesion: 0.05 +Nodes (64): MasterDeckParserService, analyze_fonts_in_all_slides(), check_google_font_availability(), _convert_pptx_to_pdf(), _create_font_alias_config(), extract_fonts_from_oxml(), _extract_slide_xmls(), FontAnalysisResult (+56 more) + +### Community 45 - "Community 45" +Cohesion: 0.06 +Nodes (45): follow_up_questions(), Classify content and return follow-up questions if the brief is thin., get_messages(), get_messages_for_slides_markdown(), BriefSection, BriefStructure, Brief pre-processing: extract structured sections from long content. For docume, Render for injection into the outline generation prompt. (+37 more) + +### Community 46 - "Community 46" +Cohesion: 0.08 +Nodes (43): Generate image using ComfyUI workflow API. User provides: - COM, _get_fallback_providers(), Parse FALLBACK_LLM_PROVIDERS env var into list of LLMProvider enums., get_can_change_keys_env(), get_custom_model_env(), get_google_model_env(), get_gpt_image_1_5_quality_env(), get_pexels_api_key_env() (+35 more) + +### Community 47 - "Community 47" +Cohesion: 0.09 +Nodes (16): d(), f(), g(), h(), L, m(), {onDragStart:n}, p() (+8 more) + +### Community 48 - "Community 48" +Cohesion: 0.07 +Nodes (51): a, autolink(), blockquote(), blockTokens(), br(), checkbox(), code(), codespan() (+43 more) + +### Community 49 - "Community 49" +Cohesion: 0.07 +Nodes (52): BaseModel, convert_html_to_react(), convert_slide_to_html(), create_template(), edit_html_with_images(), edit_html_with_images_endpoint(), ErrorResponse, generate_html_from_slide() (+44 more) + +### Community 50 - "Community 50" +Cohesion: 0.09 +Nodes (55): _, A, b, c, d(), E(), F(), fn() (+47 more) + +### Community 51 - "Community 51" +Cohesion: 0.06 +Nodes (23): $, a(), B, c, clear(), constructor(), d, delete() (+15 more) + +### Community 52 - "Community 52" +Cohesion: 0.09 +Nodes (53): $(), A, b, [b,A], c, d(), E(), e9() (+45 more) + +### Community 53 - "Community 53" +Cohesion: 0.08 +Nodes (47): autolink(), blockquote(), blockTokens(), br(), code(), codespan(), constructor(), def() (+39 more) + +### Community 54 - "Community 54" +Cohesion: 0.03 +Nodes (24): d, l, R, T, a, q, c, d (+16 more) + +### Community 55 - "Community 55" +Cohesion: 0.07 +Nodes (44): ApiErrorResponse, ApiResponseHandler, FileUploadSection(), FontData, FontManager(), FontManagerProps, UploadedFont, PresentationListItem() (+36 more) + +### Community 56 - "Community 56" +Cohesion: 0.04 +Nodes (35): barPieLineAreaChartDataSchema, CHART_COLORS, ChartWithBulletsSlideData, ChartWithBulletsSlideLayout(), chartWithBulletsSlideSchema, scatterChartDataSchema, RemoteSvgIcon(), RemoteSvgOptions (+27 more) + +### Community 57 - "Community 57" +Cohesion: 0.04 +Nodes (30): ImagePrompt, Base method for Google image generation models., Generate image using Gemini Flash (gemini-3.1-flash-image-preview)., Generate image using NanoBanana Pro (gemini-3.1-flash-image-preview)., Find the prompt node in the workflow and inject the prompt text. Looks f, Submit workflow to ComfyUI and return the prompt_id., Poll ComfyUI history endpoint until workflow completes., Download the generated image from ComfyUI. (+22 more) + +### Community 58 - "Community 58" +Cohesion: 0.07 +Nodes (46): aE(), aS(), ax(), eL(), eo(), er(), ez(), G() (+38 more) + +### Community 59 - "Community 59" +Cohesion: 0.04 +Nodes (57): dependencies, @azure/msal-browser, @azure/msal-react, @babel/standalone, class-variance-authority, clsx, cmdk, @dnd-kit/core (+49 more) + +### Community 60 - "Community 60" +Cohesion: 0.04 +Nodes (57): Align Center Horizontal Simple Bold Icon, Arrows In Line Vertical Bold Icon, Article Medium Bold Icon, Binoculars Bold Icon, Book Bold Icon, Bounding Box Bold Icon, Box Arrow Down Bold Icon, Broom Bold Icon (+49 more) + +### Community 61 - "Community 61" +Cohesion: 0.06 +Nodes (18): a(), c, clear(), constructor(), d, delete(), get(), has() (+10 more) + +### Community 62 - "Community 62" +Cohesion: 0.07 +Nodes (46): CustomTemplateCard, LayoutPreview, GenerateButton(), GenerateButtonProps, LayoutItem, LayoutItemProps, NewSlideV1Props, TemplateSelection() (+38 more) + +### Community 63 - "Community 63" +Cohesion: 0.06 +Nodes (35): filter, get_layout_detail(), check_if_api_request_is_valid(), derive_presentation_from_existing_one(), edit_presentation_with_new_content(), generate_presentation_handler(), generate_presentation_sync(), get_all_presentations() (+27 more) + +### Community 64 - "Community 64" +Cohesion: 0.10 +Nodes (46): ADR: arq/Redis Queue for Async Generation, ADR: HttpOnly Session Cookie Auth, ADR: SSE Streaming for Generation Feedback, DeckForge REST API Specification, DeckForge System Architecture, arq Background Worker, Audit Log, AuthService (+38 more) + +### Community 65 - "Community 65" +Cohesion: 0.13 +Nodes (10): a(), addProseMirrorPlugins(), ey(), N, O(), r, T(), t7() (+2 more) + +### Community 66 - "Community 66" +Cohesion: 0.06 +Nodes (20): Transfer all presentations from one user to another. Used for GDPR complian, transfer_ownership(), export_with_brand(), ExportRequest, Presentation export endpoints with brand enforcement., Export presentation with automatic brand enforcement. - Loads brand config, add_comment(), CommentRequest (+12 more) + +### Community 67 - "Community 67" +Cohesion: 0.12 +Nodes (47): _(), a(), applyPatches(), B(), C(), concat(), constructor(), createDraft() (+39 more) + +### Community 68 - "Community 68" +Cohesion: 0.05 +Nodes (20): APIKeyWarning(), FileItem, LoadingState, TextContents, LoadingSpinner(), MarkdownRenderer(), MarkdownRendererProps, metadata (+12 more) + +### Community 69 - "Community 69" +Cohesion: 0.06 +Nodes (34): BarChartItem, COLORS, DiagramRenderer(), DiagramRendererProps, FlowStep, MermaidRenderer(), SlideErrorBoundary, SlideErrorBoundaryState (+26 more) + +### Community 70 - "Community 70" +Cohesion: 0.06 +Nodes (33): checkbox(), OutlineContentProps, OutlineItem(), OutlineItemProps, parseContent(), Dashboard Loading Component (chunk), Dashboard Page, Dashboard Page Component (chunk) (+25 more) + +### Community 71 - "Community 71" +Cohesion: 0.15 +Nodes (8): d(), f, g(), l, m, p, r, u() + +### Community 72 - "Community 72" +Cohesion: 0.06 +Nodes (28): Ac(), af(), Ag(), Ai, Ao, AQ(), aU(), Aw() (+20 more) + +### Community 73 - "Community 73" +Cohesion: 0.13 +Nodes (17): AnthropicAssistantMessage, AnthropicToolCallMessage, AnthropicUserMessage, GoogleAssistantMessage, GoogleToolCallMessage, OpenAIAssistantMessage, OpenAIToolCallMessage, AnthropicToolCall (+9 more) + +### Community 74 - "Community 74" +Cohesion: 0.11 +Nodes (7): draw(), id, iH(), il, ir, is, iy + +### Community 75 - "Community 75" +Cohesion: 0.06 +Nodes (32): Header(), helpQuestions, PresentationGridProps, PresentationPage(), SortableListItem(), SortableSlide(), SortableSlideProps, Presentation (+24 more) + +### Community 76 - "Community 76" +Cohesion: 0.04 +Nodes (40): _, A, b, [B,O], [b,S], c, [C,M], d (+32 more) + +### Community 77 - "Community 77" +Cohesion: 0.04 +Nodes (41): $, A, b, [B,O], [b,S], c, [C,M], d (+33 more) + +### Community 78 - "Community 78" +Cohesion: 0.07 +Nodes (6): e3, e4(), e9, q, ta(), te() + +### Community 79 - "Community 79" +Cohesion: 0.09 +Nodes (45): a4(), a5(), a7(), az(), cb(), ce(), cf(), cg() (+37 more) + +### Community 80 - "Community 80" +Cohesion: 0.06 +Nodes (45): Archive Bold Icon, Balloon Bold Icon, Battery Charging Bold Icon, Battery High Bold Icon, Battery Plus Bold Icon, Battery Plus Vertical Bold Icon, Biohazard Bold Icon, Box Arrow Up Bold Icon (+37 more) + +### Community 81 - "Community 81" +Cohesion: 0.05 +Nodes (40): b(), C(), [c,d], d, [d,u], e(), [e,t], ei (+32 more) + +### Community 82 - "Community 82" +Cohesion: 0.12 +Nodes (7): Aa(), AC(), al, Am(), AP(), mj(), y5() + +### Community 83 - "Community 83" +Cohesion: 0.06 +Nodes (32): a(), b, c, {canvasRef:c,slideDisplayRef:u,strokeWidth:m,strokeColor:h,eraserMode:p,isDrawing:f,canvasDimensions:x,setCanvasDimensions:g,didYourDraw:v,handleMouseDown:b,handleMouseMove:j,handleMouseUp:y,handleTouchStart:N,handleTouchMove:w,handleTouchEnd:k,handleClearCanvas:C,handleEraserModeChange:_,handleStrokeColorChange:S,handleStrokeWidthChange:F}, d, e, {fontsData:u,UploadedFonts:m,uploadFont:x,removeFont:b,getAllUnsupportedFonts:y,setFontsData:C}, g() (+24 more) + +### Community 84 - "Community 84" +Cohesion: 0.09 +Nodes (25): _(), a, c, d(), E(), ea, ed, ee (+17 more) + +### Community 85 - "Community 85" +Cohesion: 0.07 +Nodes (43): Arrow Arc Left Bold Icon, Arrow Arc Right Bold Icon, Arrow Bend Double Up Left Bold Icon, Arrow Bend Down Right Bold Icon, Arrow Bend Left Down Bold Icon, Arrow Bend Right Up Bold Icon, Arrow Circle Down Left Bold Icon, Arrow Circle Down Right Bold Icon (+35 more) + +### Community 86 - "Community 86" +Cohesion: 0.05 +Nodes (43): experimental, adjustFontFallbacks, adjustFontFallbacksWithSizeAdjust, bundlePagesExternals, caseSensitiveRoutes, clientRouterFilter, clientRouterFilterRedirects, cpus (+35 more) + +### Community 88 - "Community 88" +Cohesion: 0.11 +Nodes (42): Admin Analytics Page, Admin Audit Page, Admin Clients Page, Admin Settings Page, Admin Users Page, Admin Analytics Page Chunk, Admin Audit Page Chunk, Admin Clients Page Chunk (+34 more) + +### Community 89 - "Community 89" +Cohesion: 0.12 +Nodes (3): j(), t9(), w() + +### Community 90 - "Community 90" +Cohesion: 0.06 +Nodes (37): ea(), eb(), ec(), ee(), ef(), el(), eM(), en() (+29 more) + +### Community 91 - "Community 91" +Cohesion: 0.05 +Nodes (41): Arrow Fat Down Bold Icon, Arrow Fat Up Bold Icon, Arrows Merge Bold Icon, Bell Ringing Bold Icon, Browser Bold Icon, Caret Circle Left Bold Icon, Caret Down Bold Icon, Chart Pie Bold Icon (+33 more) + +### Community 92 - "Community 92" +Cohesion: 0.05 +Nodes (38): /admin/clients/[id]/brand/page, /admin/clients/[id]/master-decks/page, /admin/clients/[id]/teams/page, /admin/page, /admin/users/[id]/page, /api/export-as-pdf/route, /api/presentation_to_pptx_model/route, /api/read-file/route (+30 more) + +### Community 93 - "Community 93" +Cohesion: 0.05 +Nodes (39): Admin Layout, pages, /admin/analytics/page, /admin/audit/page, /admin/clients/[id]/brand/page, /admin/clients/[id]/master-decks/page, /admin/clients/[id]/page, /admin/clients/[id]/teams/page (+31 more) + +### Community 94 - "Community 94" +Cohesion: 0.14 +Nodes (11): _(), E, ta(), th(), tn(), to(), ts(), V() (+3 more) + +### Community 95 - "Community 95" +Cohesion: 0.10 +Nodes (39): ae(), ci(), em(), ep(), ew(), ey(), ia(), ib() (+31 more) + +### Community 96 - "Community 96" +Cohesion: 0.05 +Nodes (33): Diff, FirstArg, LayoutProps, MaybeField, Negative, NonNegative, Numeric, OmitWithTag (+25 more) + +### Community 97 - "Community 97" +Cohesion: 0.05 +Nodes (26): ChartWithBulletsSlideData, ChartWithBulletsSlideLayoutProps, chartWithBulletsSlideSchema, DEFAULT_CHART_COLORS, divergingDataSchema, multiSeriesDataSchema, scatterDataSchema, simpleDataSchema (+18 more) + +### Community 98 - "Community 98" +Cohesion: 0.12 +Nodes (38): aa(), ag(), ao(), eb(), eI(), ev(), ir(), l4() (+30 more) + +### Community 99 - "Community 99" +Cohesion: 0.09 +Nodes (10): ea, ec, eg(), eh(), es, eW(), ey(), na (+2 more) + +### Community 100 - "Community 100" +Cohesion: 0.05 +Nodes (36): /admin/analytics/page, /admin/audit/page, /admin/clients/[id]/brand/page, /admin/clients/[id]/master-decks/page, /admin/clients/[id]/page, /admin/clients/[id]/teams/page, /admin/clients/page, /admin/page (+28 more) + +### Community 101 - "Community 101" +Cohesion: 0.09 +Nodes (28): edit_slide_html(), get_edited_slide_content(), get_messages(), get_system_prompt(), get_user_prompt(), extract_html_from_response(), get_edited_slide_html(), get_user_prompt() (+20 more) + +### Community 102 - "Community 102" +Cohesion: 0.10 +Nodes (12): eu(), td(), tf, ti(), tm, tN(), to(), tp (+4 more) + +### Community 103 - "Community 103" +Cohesion: 0.06 +Nodes (26): B, c, [c,u], [d,c], e, ed, en, eo (+18 more) + +### Community 104 - "Community 104" +Cohesion: 0.07 +Nodes (31): app_lifespan(), Lifespan context manager for FastAPI application. Initializes the applicatio, cancel_job(), Job status polling and SSE streaming endpoints., Cancel a queued or processing job., SSE stream of job progress events via Redis pub/sub., stream_job_progress(), create_db_and_tables() (+23 more) + +### Community 105 - "Community 105" +Cohesion: 0.10 +Nodes (33): _, a, B(), c, [C,E], d, e, [e,t] (+25 more) + +### Community 106 - "Community 106" +Cohesion: 0.10 +Nodes (29): PptxAlignment, PptxAutoShapeBoxModel, PptxBoxShapeEnum, PptxConnectorModel, PptxConnectorType, PptxFillModel, PptxFontModel, PptxObjectFitEnum (+21 more) + +### Community 107 - "Community 107" +Cohesion: 0.06 +Nodes (35): canonicalBase, config, amp, analyticsId, assetPrefix, basePath, cacheMaxMemorySize, cleanDistDir (+27 more) + +### Community 108 - "Community 108" +Cohesion: 0.11 +Nodes (33): $(), a, B(), c, D, e, [e,t], ee() (+25 more) + +### Community 109 - "Community 109" +Cohesion: 0.11 +Nodes (7): ee, el, en, eo, et, ev(), tz() + +### Community 110 - "Community 110" +Cohesion: 0.09 +Nodes (28): $(), a, D, {dom:d,text:a,slice:c}, {dom:s,text:r}, e0, e1, e2 (+20 more) + +### Community 111 - "Community 111" +Cohesion: 0.06 +Nodes (23): ChartItemSchema, ChartTypeEnum, DivergingDataPointSchema, getGridLayout(), MultiChartGridWithBulletsSlideData, MultiChartGridWithBulletsSlideLayout(), MultiSeriesDataPointSchema, ScatterDataPointSchema (+15 more) + +### Community 112 - "Community 112" +Cohesion: 0.14 +Nodes (33): an(), ap(), co(), cu(), h(), iF(), ih(), ii() (+25 more) + +### Community 113 - "Community 113" +Cohesion: 0.11 +Nodes (14): e$(), e3(), e5(), e7(), e9(), ey(), s, ta (+6 more) + +### Community 114 - "Community 114" +Cohesion: 0.13 +Nodes (32): _(), ea(), eb(), ec(), ee(), ef(), ei(), en() (+24 more) + +### Community 115 - "Community 115" +Cohesion: 0.08 +Nodes (23): PromptInput(), PromptInputProps, ReviewInfo, ReviewWorkflow(), ReviewWorkflowProps, STATUS_CONFIG, TRANSITIONS, SlideContentProps (+15 more) + +### Community 116 - "Community 116" +Cohesion: 0.08 +Nodes (31): _0(), enF(), k$(), l5(), l6(), lu(), _n(), _o() (+23 more) + +### Community 117 - "Community 117" +Cohesion: 0.10 +Nodes (31): e6(), ed(), eo(), iQ(), iw(), s$(), sB(), sh() (+23 more) + +### Community 118 - "Community 118" +Cohesion: 0.07 +Nodes (24): _, [a,x], c, d, f, [f,p], g, [G,D] (+16 more) + +### Community 119 - "Community 119" +Cohesion: 0.17 +Nodes (29): Admin Storage Page, Admin Storage Page Component (chunk), ConfigurationInitializer Component, BrandThemeProvider(), Sign in with Microsoft (SSO), _, Custom Template Page Component (chunk), Documents Preview Page (+21 more) + +### Community 120 - "Community 120" +Cohesion: 0.10 +Nodes (30): _2(), Dd(), pl(), S_(), S2(), S3(), S4(), S6() (+22 more) + +### Community 121 - "Community 121" +Cohesion: 0.09 +Nodes (25): ce(), cf(), cs(), e3(), Ia(), Ir(), k9(), R0() (+17 more) + +### Community 122 - "Community 122" +Cohesion: 0.09 +Nodes (16): $(), A(), d, {defaultType:e}, E(), ee(), et(), ew (+8 more) + +### Community 123 - "Community 123" +Cohesion: 0.11 +Nodes (6): e0, e7(), e9(), nn(), nt, t4() + +### Community 124 - "Community 124" +Cohesion: 0.07 +Nodes (8): _, d, f, i, l, o, p, T + +### Community 125 - "Community 125" +Cohesion: 0.08 +Nodes (26): a, c, [c,u], d, E(), ee, el, eo (+18 more) + +### Community 126 - "Community 126" +Cohesion: 0.10 +Nodes (22): A(), b(), D(), E, f, g(), h, i (+14 more) + +### Community 127 - "Community 127" +Cohesion: 0.08 +Nodes (24): _, a, b, c, [c,f], [c,y], d, e (+16 more) + +### Community 128 - "Community 128" +Cohesion: 0.16 +Nodes (28): A(), a8(), ab(), ah(), aN(), aQ(), aw(), ia() (+20 more) + +### Community 129 - "Community 129" +Cohesion: 0.11 +Nodes (12): D(), f, h, i, k, l, m, o (+4 more) + +### Community 130 - "Community 130" +Cohesion: 0.12 +Nodes (24): _, a, B, c, d, E(), f, g (+16 more) + +### Community 131 - "Community 131" +Cohesion: 0.11 +Nodes (5): ep, K(), tb(), ti(), tp() + +### Community 132 - "Community 132" +Cohesion: 0.07 +Nodes (21): ChartItemSchema, ChartTypeEnum, DEFAULT_CHART_COLORS, DivergingDataPointSchema, MultiChartGridSlideData, MultiChartGridSlideLayoutProps, MultiSeriesDataPointSchema, ScatterDataPointSchema (+13 more) + +### Community 134 - "Community 134" +Cohesion: 0.08 +Nodes (21): Diff, FirstArg, LayoutProps, MaybeField, Negative, NonNegative, Numeric, OmitWithTag (+13 more) + +### Community 135 - "Community 135" +Cohesion: 0.11 +Nodes (10): a, c, d, i, l, m, n, o() (+2 more) + +### Community 136 - "Community 136" +Cohesion: 0.14 +Nodes (19): $(), a, b(), d(), E(), f(), h(), i() (+11 more) + +### Community 137 - "Community 137" +Cohesion: 0.14 +Nodes (17): $(), a(), b(), E(), f(), h(), m(), n() (+9 more) + +### Community 138 - "Community 138" +Cohesion: 0.10 +Nodes (22): _, a(), c, [C,A], E, f, [h,g], i() (+14 more) + +### Community 139 - "Community 139" +Cohesion: 0.13 +Nodes (15): Plain Pydantic model for slide data in request body (avoids SQLModel table=True, SlideInput, Enum, Tone, Verbosity, mock_presentation_generation_completed(), PptxObjectFitEnum, SSECompleteResponse (+7 more) + +### Community 140 - "Community 140" +Cohesion: 0.12 +Nodes (25): I0(), I1(), I2(), I5(), I9(), Iq(), IY(), Iz() (+17 more) + +### Community 141 - "Community 141" +Cohesion: 0.15 +Nodes (25): a1(), a2(), a3(), a4(), a6(), aj(), eh(), lb() (+17 more) + +### Community 142 - "Community 142" +Cohesion: 0.08 +Nodes (23): [b,v], [B,Y], [c,u], d, [D,M], [E,C], [F,O], [f,x] (+15 more) + +### Community 143 - "Community 143" +Cohesion: 0.12 +Nodes (15): ButtonState, metadata, ButtonState, initialState, userConfigSlice, LLMConfig, pull_ollama_model(), changeProvider() (+7 more) + +### Community 144 - "Community 144" +Cohesion: 0.08 +Nodes (24): actions, app_name, back, cancel, close, confirm, create, created_at (+16 more) + +### Community 145 - "Community 145" +Cohesion: 0.10 +Nodes (23): _, a, c, d, e(), f, g, h (+15 more) + +### Community 146 - "Community 146" +Cohesion: 0.08 +Nodes (20): A, [b,g], c, [C,O], d, [D,F], e, f (+12 more) + +### Community 147 - "Community 147" +Cohesion: 0.13 +Nodes (20): c, d, E, f, g(), h, i, k() (+12 more) + +### Community 148 - "Community 148" +Cohesion: 0.12 +Nodes (18): a, c, d, f, g(), h, i(), l (+10 more) + +### Community 149 - "Community 149" +Cohesion: 0.11 +Nodes (21): _(), a(), C, d, e(), f(), g, h() (+13 more) + +### Community 150 - "Community 150" +Cohesion: 0.14 +Nodes (18): sharp, ApiError, closeBrowserAndPage(), convertSvgToPng(), GET(), getAllChildElementsAttributes(), getBrowserAndPage(), getElementAttributes() (+10 more) + +### Community 151 - "Community 151" +Cohesion: 0.15 +Nodes (23): BU(), displayable(), n3(), Na(), nB(), Nc(), Nd(), Ng() (+15 more) + +### Community 152 - "Community 152" +Cohesion: 0.12 +Nodes (21): a(), C, d, e(), F, h(), i, [j,E] (+13 more) + +### Community 153 - "Community 153" +Cohesion: 0.15 +Nodes (3): ef, eg(), eq() + +### Community 154 - "Community 154" +Cohesion: 0.13 +Nodes (23): aA(), af(), aO(), aU(), av(), ay(), b(), C() (+15 more) + +### Community 155 - "Community 155" +Cohesion: 0.12 +Nodes (15): a, c, d, f, h, i, l, m (+7 more) + +### Community 156 - "Community 156" +Cohesion: 0.13 +Nodes (17): ChartAssignmentResponse, DeplotResponse, ImageAssetResponse, EditableElement, EditableLayoutWrapper(), IconsEditorProps, ImageEditorProps, HtmlEditor() (+9 more) + +### Community 157 - "Community 157" +Cohesion: 0.09 +Nodes (17): b, c, d, g, i, j, l, n (+9 more) + +### Community 158 - "Community 158" +Cohesion: 0.13 +Nodes (7): c, i, l, n, o, s, u + +### Community 159 - "Community 159" +Cohesion: 0.32 +Nodes (23): dataRoute, experimentalBypassFor, initialHeaders, cache-control, content-type, x-next-cache-tags, initialRevalidateSeconds, routes (+15 more) + +### Community 160 - "Community 160" +Cohesion: 0.14 +Nodes (7): c, i, j, l, o, r, s + +### Community 161 - "Community 161" +Cohesion: 0.12 +Nodes (3): ef(), en(), O() + +### Community 162 - "Community 162" +Cohesion: 0.19 +Nodes (11): ec, ed, em(), es(), ex(), f(), H(), m() (+3 more) + +### Community 163 - "Community 163" +Cohesion: 0.11 +Nodes (22): Ap(), Ea(), Ed(), edB(), edx(), Ep(), ET(), F9() (+14 more) + +### Community 164 - "Community 164" +Cohesion: 0.15 +Nodes (22): a1(), a2(), a3(), a6(), a9(), aB(), aH(), ak() (+14 more) + +### Community 165 - "Community 165" +Cohesion: 0.09 +Nodes (16): b, c, d, h, i, j, k, l (+8 more) + +### Community 166 - "Community 166" +Cohesion: 0.09 +Nodes (15): a, c, d, f, i, l, m, o (+7 more) + +### Community 167 - "Community 167" +Cohesion: 0.11 +Nodes (19): _, a, b, c, d, f, g, h (+11 more) + +### Community 168 - "Community 168" +Cohesion: 0.10 +Nodes (18): b, c, d, f, g, h, i(), j (+10 more) + +### Community 169 - "Community 169" +Cohesion: 0.10 +Nodes (19): a, b, c, d, f, g, h, i() (+11 more) + +### Community 170 - "Community 170" +Cohesion: 0.12 +Nodes (16): StatusBadge(), CardContent(), CardContentProps, CardFooterProps, CardHeader(), CardHeaderProps, CardProps, CardTitle() (+8 more) + +### Community 171 - "Community 171" +Cohesion: 0.15 +Nodes (6): GetCurrentDatetimeTool, LLMDynamicTool, LLMTool, Search the web for information., Get the current datetime., SearchWebTool + +### Community 172 - "Community 172" +Cohesion: 0.11 +Nodes (17): b, c, d(), f, g, h, i, j (+9 more) + +### Community 173 - "Community 173" +Cohesion: 0.14 +Nodes (21): af(), ao(), as, d, e8(), l1(), le, lo (+13 more) + +### Community 174 - "Community 174" +Cohesion: 0.11 +Nodes (16): a, b, c, d, f(), g, h, k (+8 more) + +### Community 175 - "Community 175" +Cohesion: 0.14 +Nodes (21): ab(), ao(), as, c, d(), e8(), li(), lr() (+13 more) + +### Community 176 - "Community 176" +Cohesion: 0.17 +Nodes (21): ac(), ad(), ak(), aL(), am(), ap(), aR(), aT() (+13 more) + +### Community 177 - "Community 177" +Cohesion: 0.11 +Nodes (17): _(), a, c, {clients:s,selectedClientId:u,masterDecks:x,presentations:p,isLoadingClients:g,isLoadingDecks:f,isLoadingPresentations:Z}, d, e, [E,P], i (+9 more) + +### Community 178 - "Community 178" +Cohesion: 0.10 +Nodes (7): c, i, l(), N(), o, r, s + +### Community 179 - "Community 179" +Cohesion: 0.10 +Nodes (14): $, c, d, g, h, i, m, n (+6 more) + +### Community 180 - "Community 180" +Cohesion: 0.10 +Nodes (15): a, c, d, f, l, m, [m,p], o (+7 more) + +### Community 181 - "Community 181" +Cohesion: 0.10 +Nodes (16): c, d, f, g, h, j, l, n (+8 more) + +### Community 182 - "Community 182" +Cohesion: 0.10 +Nodes (20): compilerOptions, allowJs, esModuleInterop, forceConsistentCasingInFileNames, incremental, isolatedModules, jsx, lib (+12 more) + +### Community 183 - "Community 183" +Cohesion: 0.10 +Nodes (19): dev_login(), dev_status(), DevLoginRequest, get_current_user_info(), logout(), Return current authenticated user info., Clear session cookie., Check auth modes available. (+11 more) + +### Community 184 - "Community 184" +Cohesion: 0.14 +Nodes (13): export_csv(), export_json(), log(), query(), Service for creating and querying audit log entries., Fire-and-forget audit log entry creation., Query audit logs with optional filters., Export audit logs as CSV string. (+5 more) + +### Community 185 - "Community 185" +Cohesion: 0.11 +Nodes (9): Tests for content classification regex patterns. Patterns are duplicated here t, test_rejects_non_metrics(), TestComparisonRegex, TestImageRefRegex, TestListRegex, TestMetricRegex, TestQuoteRegex, TestTableRegex (+1 more) + +### Community 186 - "Community 186" +Cohesion: 0.10 +Nodes (15): Diff, FirstArg, LayoutProps, MaybeField, Negative, NonNegative, Numeric, OmitWithTag (+7 more) + +### Community 187 - "Community 187" +Cohesion: 0.11 +Nodes (14): a, c, d, g, h, l(), [m,x], o (+6 more) + +### Community 188 - "Community 188" +Cohesion: 0.13 +Nodes (16): _, C, D, [d,f], e(), i(), j, k (+8 more) + +### Community 189 - "Community 189" +Cohesion: 0.10 +Nodes (17): b, c, d, f, g, h, j, l (+9 more) + +### Community 190 - "Community 190" +Cohesion: 0.12 +Nodes (14): [C,N], {config:f,files:w}, e, [E,A], [j,k], L(), M(), n (+6 more) + +### Community 191 - "Community 191" +Cohesion: 0.14 +Nodes (14): extract_text_from_image_via_vision(), _find_paragraph_by_element(), _find_table_by_element(), _parse_pdf_with_pymupdf(), _parse_pptx_text(), _pptx_table_to_markdown(), Document parsing service. Uses PyMuPDF for PDF, python-pptx for PPTX, python-do, Parse PDF or PPTX to markdown. (+6 more) + +### Community 192 - "Community 192" +Cohesion: 0.11 +Nodes (16): c, d, f, g, h, k, l, m (+8 more) + +### Community 194 - "Community 194" +Cohesion: 0.19 +Nodes (3): C, eg, o + +### Community 195 - "Community 195" +Cohesion: 0.11 +Nodes (15): Diff, FirstArg, LayoutProps, MaybeField, Negative, NonNegative, Numeric, OmitWithTag (+7 more) + +### Community 196 - "Community 196" +Cohesion: 0.11 +Nodes (15): Diff, FirstArg, LayoutProps, MaybeField, Negative, NonNegative, Numeric, OmitWithTag (+7 more) + +### Community 197 - "Community 197" +Cohesion: 0.11 +Nodes (15): Diff, FirstArg, LayoutProps, MaybeField, Negative, NonNegative, Numeric, OmitWithTag (+7 more) + +### Community 198 - "Community 198" +Cohesion: 0.11 +Nodes (15): Diff, FirstArg, LayoutProps, MaybeField, Negative, NonNegative, Numeric, OmitWithTag (+7 more) + +### Community 199 - "Community 199" +Cohesion: 0.14 +Nodes (15): $, [a,c], [D], e(), [g,C], i(), j, l() (+7 more) + +### Community 200 - "Community 200" +Cohesion: 0.14 +Nodes (14): a, c(), E, f(), g, i, m, n (+6 more) + +### Community 201 - "Community 201" +Cohesion: 0.11 +Nodes (15): _(), a, c, d, g, h, i, k() (+7 more) + +### Community 202 - "Community 202" +Cohesion: 0.11 +Nodes (15): Diff, FirstArg, LayoutProps, MaybeField, Negative, NonNegative, Numeric, OmitWithTag (+7 more) + +### Community 203 - "Community 203" +Cohesion: 0.11 +Nodes (11): BaseHTTPMiddleware, _extract_resource_type(), Middleware that auto-logs mutating API requests to audit log., Extract resource type from URL path. e.g. /api/v1/admin/users/123 -> users, UserConfigEnvUpdateMiddleware, Request size limit middleware. Rejects requests with Content-Length exceeding t, Middleware to limit request body size., Check Content-Length header and reject if too large. (+3 more) + +### Community 204 - "Community 204" +Cohesion: 0.11 +Nodes (18): basePath, caseSensitive, dataRoutes, dynamicRoutes, headers, pages404, redirects, rewrites (+10 more) + +### Community 205 - "Community 205" +Cohesion: 0.11 +Nodes (17): a, [a,c], e, f, h, {handleDragEnd:x,handleAddSlide:j}, i, k (+9 more) + +### Community 206 - "Community 206" +Cohesion: 0.11 +Nodes (15): Diff, FirstArg, LayoutProps, MaybeField, Negative, NonNegative, Numeric, OmitWithTag (+7 more) + +### Community 207 - "Community 207" +Cohesion: 0.18 +Nodes (6): er(), f(), h(), I, m(), z + +### Community 208 - "Community 208" +Cohesion: 0.13 +Nodes (3): e6(), t, tl() + +### Community 210 - "Community 210" +Cohesion: 0.18 +Nodes (18): $(), at(), aw(), g(), lb(), lQ(), lV(), n7() (+10 more) + +### Community 211 - "Community 211" +Cohesion: 0.23 +Nodes (18): ey(), na(), nf(), nl(), oA(), oC(), oE(), oF() (+10 more) + +### Community 212 - "Community 212" +Cohesion: 0.11 +Nodes (17): images, contentDispositionType, contentSecurityPolicy, dangerouslyAllowSVG, deviceSizes, disableStaticImages, domains, formats (+9 more) + +### Community 213 - "Community 213" +Cohesion: 0.22 +Nodes (15): a, c, d, f, g(), i(), l, m (+7 more) + +### Community 214 - "Community 214" +Cohesion: 0.22 +Nodes (16): _, A, C(), d(), f(), g(), h(), I() (+8 more) + +### Community 215 - "Community 215" +Cohesion: 0.13 +Nodes (17): ConnectionTestRequest, _fetch_models_for_provider(), _get_current_model(), get_settings(), list_models(), Admin router for system settings — LLM and image provider configuration., Test connectivity to an LLM/API provider., Return a list of model IDs for the given provider. (+9 more) + +### Community 216 - "Community 216" +Cohesion: 0.14 +Nodes (10): add(), d(), e, [E,b], h(), n, remove(), S (+2 more) + +### Community 217 - "Community 217" +Cohesion: 0.15 +Nodes (5): b(), c(), p, T, u + +### Community 218 - "Community 218" +Cohesion: 0.19 +Nodes (14): _, f(), g(), h, i(), K, l(), m (+6 more) + +### Community 219 - "Community 219" +Cohesion: 0.15 +Nodes (3): a, p(), set() + +### Community 220 - "Community 220" +Cohesion: 0.18 +Nodes (17): ca(), cl(), eh(), lG(), ln(), lZ(), ne(), s4() (+9 more) + +### Community 221 - "Community 221" +Cohesion: 0.13 +Nodes (12): a, b(), c, d, i, l(), N(), o (+4 more) + +### Community 222 - "Community 222" +Cohesion: 0.12 +Nodes (11): _(), c, d, f, h, i, k, l (+3 more) + +### Community 223 - "Community 223" +Cohesion: 0.14 +Nodes (14): a(), c, d, e, f(), l, m, n (+6 more) + +### Community 224 - "Community 224" +Cohesion: 0.22 +Nodes (15): checkFields(), Diff, FirstArg, LayoutProps, MaybeField, Negative, NonNegative, Numeric (+7 more) + +### Community 225 - "Community 225" +Cohesion: 0.22 +Nodes (15): checkFields(), Diff, FirstArg, LayoutProps, MaybeField, Negative, NonNegative, Numeric (+7 more) + +### Community 226 - "Community 226" +Cohesion: 0.22 +Nodes (15): checkFields(), Diff, FirstArg, LayoutProps, MaybeField, Negative, NonNegative, Numeric (+7 more) + +### Community 227 - "Community 227" +Cohesion: 0.12 +Nodes (15): Diff, FirstArg, LayoutProps, MaybeField, Negative, NonNegative, Numeric, OmitWithTag (+7 more) + +### Community 228 - "Community 228" +Cohesion: 0.22 +Nodes (15): checkFields(), Diff, FirstArg, LayoutProps, MaybeField, Negative, NonNegative, Numeric (+7 more) + +### Community 229 - "Community 229" +Cohesion: 0.12 +Nodes (13): a, c, d, e, h, i, l, o (+5 more) + +### Community 230 - "Community 230" +Cohesion: 0.12 +Nodes (14): Diff, FirstArg, LayoutProps, MaybeField, Negative, NonNegative, Numeric, OmitWithTag (+6 more) + +### Community 231 - "Community 231" +Cohesion: 0.12 +Nodes (14): Diff, FirstArg, LayoutProps, MaybeField, Negative, NonNegative, Numeric, OmitWithTag (+6 more) + +### Community 232 - "Community 232" +Cohesion: 0.14 +Nodes (8): add(), [E,b], g(), k, n, remove(), t, w + +### Community 234 - "Community 234" +Cohesion: 0.17 +Nodes (7): e(), eb(), ib(), nb(), ob(), rb(), t() + +### Community 235 - "Community 235" +Cohesion: 0.15 +Nodes (16): File Archive Bold Icon, File Arrow Up Bold Icon, File Bold Icon, File C Bold Icon, File C Sharp Bold Icon, File Cloud Bold Icon, File Code Bold Icon, File Dashed Bold Icon (+8 more) + +### Community 236 - "Community 236" +Cohesion: 0.12 +Nodes (14): Diff, FirstArg, LayoutProps, MaybeField, Negative, NonNegative, Numeric, OmitWithTag (+6 more) + +### Community 237 - "Community 237" +Cohesion: 0.12 +Nodes (14): Diff, FirstArg, LayoutProps, MaybeField, Negative, NonNegative, Numeric, OmitWithTag (+6 more) + +### Community 238 - "Community 238" +Cohesion: 0.13 +Nodes (11): a, c, d, i, l(), m, n, o (+3 more) + +### Community 239 - "Community 239" +Cohesion: 0.12 +Nodes (11): c, d, i, n, o, p, r, s (+3 more) + +### Community 240 - "Community 240" +Cohesion: 0.13 +Nodes (10): a, d, e, g, h, i, m(), n (+2 more) + +### Community 241 - "Community 241" +Cohesion: 0.12 +Nodes (12): C, d, [f,h], g, i, l, n, o (+4 more) + +### Community 242 - "Community 242" +Cohesion: 0.12 +Nodes (14): Diff, FirstArg, LayoutProps, MaybeField, Negative, NonNegative, Numeric, OmitWithTag (+6 more) + +### Community 243 - "Community 243" +Cohesion: 0.12 +Nodes (14): Diff, FirstArg, LayoutProps, MaybeField, Negative, NonNegative, Numeric, OmitWithTag (+6 more) + +### Community 244 - "Community 244" +Cohesion: 0.12 +Nodes (14): Diff, FirstArg, LayoutProps, MaybeField, Negative, NonNegative, Numeric, OmitWithTag (+6 more) + +### Community 245 - "Community 245" +Cohesion: 0.12 +Nodes (14): Diff, FirstArg, LayoutProps, MaybeField, Negative, NonNegative, Numeric, OmitWithTag (+6 more) + +### Community 246 - "Community 246" +Cohesion: 0.12 +Nodes (14): Diff, FirstArg, LayoutProps, MaybeField, Negative, NonNegative, Numeric, OmitWithTag (+6 more) + +### Community 247 - "Community 247" +Cohesion: 0.12 +Nodes (14): Diff, FirstArg, LayoutProps, MaybeField, Negative, NonNegative, Numeric, OmitWithTag (+6 more) + +### Community 248 - "Community 248" +Cohesion: 0.12 +Nodes (14): Diff, FirstArg, LayoutProps, MaybeField, Negative, NonNegative, Numeric, OmitWithTag (+6 more) + +### Community 249 - "Community 249" +Cohesion: 0.12 +Nodes (14): Diff, FirstArg, LayoutProps, MaybeField, Negative, NonNegative, Numeric, OmitWithTag (+6 more) + +### Community 250 - "Community 250" +Cohesion: 0.12 +Nodes (14): Diff, FirstArg, LayoutProps, MaybeField, Negative, NonNegative, Numeric, OmitWithTag (+6 more) + +### Community 251 - "Community 251" +Cohesion: 0.12 +Nodes (14): Diff, FirstArg, LayoutProps, MaybeField, Negative, NonNegative, Numeric, OmitWithTag (+6 more) + +### Community 252 - "Community 252" +Cohesion: 0.12 +Nodes (14): Diff, FirstArg, LayoutProps, MaybeField, Negative, NonNegative, Numeric, OmitWithTag (+6 more) + +### Community 253 - "Community 253" +Cohesion: 0.12 +Nodes (14): Diff, FirstArg, LayoutProps, MaybeField, Negative, NonNegative, Numeric, OmitWithTag (+6 more) + +### Community 254 - "Community 254" +Cohesion: 0.12 +Nodes (14): Diff, FirstArg, LayoutProps, MaybeField, Negative, NonNegative, Numeric, OmitWithTag (+6 more) + +### Community 255 - "Community 255" +Cohesion: 0.12 +Nodes (14): Diff, FirstArg, LayoutProps, MaybeField, Negative, NonNegative, Numeric, OmitWithTag (+6 more) + +### Community 256 - "Community 256" +Cohesion: 0.12 +Nodes (14): Diff, FirstArg, LayoutProps, MaybeField, Negative, NonNegative, Numeric, OmitWithTag (+6 more) + +### Community 257 - "Community 257" +Cohesion: 0.12 +Nodes (14): Diff, FirstArg, LayoutProps, MaybeField, Negative, NonNegative, Numeric, OmitWithTag (+6 more) + +### Community 258 - "Community 258" +Cohesion: 0.12 +Nodes (14): Diff, FirstArg, LayoutProps, MaybeField, Negative, NonNegative, Numeric, OmitWithTag (+6 more) + +### Community 259 - "Community 259" +Cohesion: 0.12 +Nodes (14): Diff, FirstArg, LayoutProps, MaybeField, Negative, NonNegative, Numeric, OmitWithTag (+6 more) + +### Community 260 - "Community 260" +Cohesion: 0.12 +Nodes (14): Diff, FirstArg, LayoutProps, MaybeField, Negative, NonNegative, Numeric, OmitWithTag (+6 more) + +### Community 261 - "Community 261" +Cohesion: 0.12 +Nodes (15): zod, name, overrides, brace-expansion, peerDependencies, private, scripts, build (+7 more) + +### Community 262 - "Community 262" +Cohesion: 0.12 +Nodes (14): Diff, FirstArg, LayoutProps, MaybeField, Negative, NonNegative, Numeric, OmitWithTag (+6 more) + +### Community 263 - "Community 263" +Cohesion: 0.19 +Nodes (7): PdfSlideData, PdfSlidesResponse, process_pdf_slides(), Process a PDF file to extract slide screenshots. This endpoint: 1. Vali, get_page_images_from_pdf(), If load_images is True, temp_dir must be provided, Parse DOCX with python-docx for better table/structure handling. + +### Community 264 - "Community 264" +Cohesion: 0.18 +Nodes (15): generate_from_template(), Generate a populated PPTX from a branded template file and existing presentation, analyze_pptx_template(), _build_codegen_prompt(), _build_slide_context(), clear_template_slides(), _execute_generated_code(), generate_pptx_from_template() (+7 more) + +### Community 265 - "Community 265" +Cohesion: 0.20 +Nodes (15): _chart_from_metrics(), _chart_from_table(), ChartData, ChartSeries, extract(), _parse_metric_value(), Chart Data Extractor: extract chart-ready data from content blocks and tables., Build ChartData from a metric content block's extracted_data. (+7 more) + +### Community 266 - "Community 266" +Cohesion: 0.12 +Nodes (10): b, c, d, f, i, l, m, o (+2 more) + +### Community 267 - "Community 267" +Cohesion: 0.20 +Nodes (6): eb(), ei, eq(), er, ez(), tu() + +### Community 268 - "Community 268" +Cohesion: 0.18 +Nodes (15): NB(), Nc(), Nd(), Nf(), Ng(), Ni(), Nl(), Nm() (+7 more) + +### Community 269 - "Community 269" +Cohesion: 0.15 +Nodes (3): e(), I(), K() + +### Community 270 - "Community 270" +Cohesion: 0.13 +Nodes (14): approve_generate, attachments, generate_outline, instructions, select_client, select_master_deck, slide_count, step_configure (+6 more) + +### Community 271 - "Community 271" +Cohesion: 0.14 +Nodes (12): ChartItemSchema, ChartTypeEnum, DEFAULT_CHART_COLORS, DivergingDataPointSchema, getGridLayout(), MultiChartGridSlideData, MultiChartGridSlideLayoutProps, MultiSeriesDataPointSchema (+4 more) + +### Community 272 - "Community 272" +Cohesion: 0.14 +Nodes (12): ChartItemSchema, ChartTypeEnum, DEFAULT_CHART_COLORS, DivergingDataPointSchema, getGridLayout(), MultiChartGridSlideData, MultiChartGridSlideLayoutProps, MultiSeriesDataPointSchema (+4 more) + +### Community 273 - "Community 273" +Cohesion: 0.13 +Nodes (13): tableOfContentsSlideSchema, TableOfContentsLayout(), tableOfContentsSchema, TocItemSchema, Schema, SlideData, SlideLayoutProps, ToCItemSchema (+5 more) + +### Community 274 - "Community 274" +Cohesion: 0.14 +Nodes (12): ChartItemSchema, ChartTypeEnum, DEFAULT_CHART_COLORS, DivergingDataPointSchema, getGridLayout(), MultiChartGridSlideData, MultiChartGridSlideLayoutProps, MultiSeriesDataPointSchema (+4 more) + +### Community 275 - "Community 275" +Cohesion: 0.13 +Nodes (13): a, c, f, i, l, n, o, p (+5 more) + +### Community 276 - "Community 276" +Cohesion: 0.14 +Nodes (10): a, c, d, i, l(), m, p, r (+2 more) + +### Community 277 - "Community 277" +Cohesion: 0.14 +Nodes (11): a, c, d, i, l(), m, n, o (+3 more) + +### Community 278 - "Community 278" +Cohesion: 0.16 +Nodes (10): d, j(), l, m, N(), O, p, r (+2 more) + +### Community 279 - "Community 279" +Cohesion: 0.13 +Nodes (3): d, l, o + +### Community 280 - "Community 280" +Cohesion: 0.16 +Nodes (8): a(), g(), l, n, o(), r, x(), y() + +### Community 281 - "Community 281" +Cohesion: 0.13 +Nodes (15): images, contentDispositionType, contentSecurityPolicy, dangerouslyAllowSVG, deviceSizes, disableStaticImages, domains, formats (+7 more) + +### Community 282 - "Community 282" +Cohesion: 0.20 +Nodes (14): delete_font(), extract_font_name_from_file(), FontListResponse, FontUploadResponse, get_fonts_directory(), is_valid_font_file(), list_fonts(), Upload a font file and save it to the fonts directory. Args: fo (+6 more) + +### Community 283 - "Community 283" +Cohesion: 0.18 +Nodes (7): Native Chart Service: render ChartData as native python-pptx charts on slides., Apply brand colors to each series in the chart., Style category and value axes., Add percentage labels to pie/doughnut charts., Render a Gantt chart using rectangles. Expects categories = task names,, Render a waterfall chart using stacked shapes. series[0].values = incre, Add a native chart to a slide. For standard chart types (bar, column, l + +### Community 284 - "Community 284" +Cohesion: 0.15 +Nodes (7): b(), c, d, i, l, o, w() + +### Community 285 - "Community 285" +Cohesion: 0.15 +Nodes (9): a, c, e, i, l(), n, o, {templates:c,loading:m} (+1 more) + +### Community 286 - "Community 286" +Cohesion: 0.22 +Nodes (3): ne, z, n_() + +### Community 288 - "Community 288" +Cohesion: 0.15 +Nodes (11): a, c, d, e, f, l, m, p() (+3 more) + +### Community 289 - "Community 289" +Cohesion: 0.14 +Nodes (13): add_slide, approve, approved, delete_slide, draft, export_pdf, in_review, properties (+5 more) + +### Community 290 - "Community 290" +Cohesion: 0.16 +Nodes (12): BusinessModelData, businessModelSchema, CHART_COLORS, Props, CompanyTractionData, CompanyTractionSlideLayout(), computeStats(), defaultColors (+4 more) + +### Community 291 - "Community 291" +Cohesion: 0.15 +Nodes (11): CHART_COLOR_PALETTES, ChartItemSchema, ChartTypeEnum, DivergingDataPointSchema, getGridLayout(), MultiChartGridWithMetricsSlideData, MultiChartGridWithMetricsSlideLayout(), MultiSeriesDataPointSchema (+3 more) + +### Community 292 - "Community 292" +Cohesion: 0.14 +Nodes (12): a, c, f, i, l, n, o, p (+4 more) + +### Community 293 - "Community 293" +Cohesion: 0.30 +Nodes (11): get_disable_image_generation_env(), get_selected_image_provider(), is_comfyui_selected(), is_dalle3_selected(), is_gemini_flash_selected(), is_gpt_image_1_5_selected(), is_image_generation_disabled(), is_nanobanana_pro_selected() (+3 more) + +### Community 294 - "Community 294" +Cohesion: 0.17 +Nodes (7): c, i(), l, n, r, s, v + +### Community 295 - "Community 295" +Cohesion: 0.22 +Nodes (9): a(), c(), e(), h(), i(), o(), r, s() (+1 more) + +### Community 296 - "Community 296" +Cohesion: 0.15 +Nodes (9): a, c, d, f, [f,p], i, l, p (+1 more) + +### Community 297 - "Community 297" +Cohesion: 0.19 +Nodes (9): buildChartData(), buildSimpleData(), ChartRenderer(), DEFAULT_CHART_COLORS, DivergingDataSchema, Schema, SeriesSchema, SlideData (+1 more) + +### Community 298 - "Community 298" +Cohesion: 0.19 +Nodes (9): buildChartData(), buildSimpleData(), ChartRenderer(), DEFAULT_CHART_COLORS, DivergingDataSchema, FormData, Schema, SeriesSchema (+1 more) + +### Community 299 - "Community 299" +Cohesion: 0.19 +Nodes (10): ChartItemSchema, ChartTypeEnum, DEFAULT_CHART_COLORS, defaultCharts, dynamicSlideLayout(), getGridLayout(), MiniChartRenderer(), Schema (+2 more) + +### Community 300 - "Community 300" +Cohesion: 0.19 +Nodes (10): ChartItemSchema, ChartTypeEnum, DEFAULT_CHART_COLORS, defaultCharts, dynamicSlideLayout(), getGridLayout(), MiniChartRenderer(), Schema (+2 more) + +### Community 301 - "Community 301" +Cohesion: 0.19 +Nodes (10): ChartItemSchema, ChartTypeEnum, DEFAULT_CHART_COLORS, defaultCharts, dynamicSlideLayout(), getGridLayout(), MiniChartRenderer(), Schema (+2 more) + +### Community 302 - "Community 302" +Cohesion: 0.18 +Nodes (10): a, d, e, f(), l(), m, n, o() (+2 more) + +### Community 303 - "Community 303" +Cohesion: 0.15 +Nodes (12): a, d, [h,y], i, k, l, n, o (+4 more) + +### Community 304 - "Community 304" +Cohesion: 0.17 +Nodes (9): log(), Fire-and-forget AI usage logging service., Log AI usage asynchronously (fire-and-forget). If user_id/client_id/present, _write_log(), AIUsageModel, AI usage tracking model for analytics., LLMCallContext, Context variable for propagating user/client/presentation info into LLM calls. (+1 more) + +### Community 305 - "Community 305" +Cohesion: 0.26 +Nodes (5): eb(), ec(), ed(), ey(), L + +### Community 306 - "Community 306" +Cohesion: 0.26 +Nodes (12): eK(), eQ(), ew(), n$(), nC(), nD(), nN(), nP() (+4 more) + +### Community 307 - "Community 307" +Cohesion: 0.23 +Nodes (12): a5(), a7(), l5(), lk(), lw(), oL(), oM(), ue() (+4 more) + +### Community 308 - "Community 308" +Cohesion: 0.17 +Nodes (11): email_label, invalid_credentials, password_label, session_expired, sign_in, sign_in_dev, sign_out, signing_in (+3 more) + +### Community 309 - "Community 309" +Cohesion: 0.18 +Nodes (8): a, c, d, l(), m, n, o, p + +### Community 310 - "Community 310" +Cohesion: 0.18 +Nodes (7): e, h, i, m(), n, r, t + +### Community 311 - "Community 311" +Cohesion: 0.17 +Nodes (12): devDependencies, cypress, esbuild, tailwindcss, @types/babel__standalone, @types/node, @types/prismjs, @types/puppeteer (+4 more) + +### Community 312 - "Community 312" +Cohesion: 0.21 +Nodes (9): create_client(), get_client(), list_clients(), _slugify(), update_client(), Admin router for team management., check_client_access(), RBAC helper functions for checking client/team access. (+1 more) + +### Community 313 - "Community 313" +Cohesion: 0.18 +Nodes (9): analyze_slide_layout(), classify_layout_from_regions(), DetectedRegion, Layout analysis service using LayoutParser for slide structure detection. Analy, Classify slide layout type based on detected regions. Returns a layout type, A detected region on a slide., Analyze a slide screenshot and return detected layout regions. Uses LayoutP, Convert detected regions to a text description for LLM context. Normalizes (+1 more) + +### Community 314 - "Community 314" +Cohesion: 0.17 +Nodes (6): Tests for auth_service: JWT creation/validation, dev login, user creation., Dev mode: correct password creates user., Logging in twice with same email returns same user., Without AZURE_AD_TENANT_ID, service is in dev mode., TestDevLogin, TestDevMode + +### Community 317 - "Community 317" +Cohesion: 0.18 +Nodes (7): e, h, i, m(), n, r, t + +### Community 319 - "Community 319" +Cohesion: 0.20 +Nodes (6): instrument_sans, inter, metadata, roboto, Toaster(), ToasterProps + +### Community 320 - "Community 320" +Cohesion: 0.20 +Nodes (7): AIUsageData, AnalyticsPage(), formatTokens(), OverviewData, PerformanceData, QualityData, UsageData + +### Community 321 - "Community 321" +Cohesion: 0.18 +Nodes (7): ChartConfig, ChartContainer, ChartContext, ChartContextProps, ChartLegendContent, ChartTooltipContent, THEMES + +### Community 322 - "Community 322" +Cohesion: 0.33 +Nodes (8): check_default(), check_port(), find_free_port(), info(), install_if_missing(), port_taken_by_other(), set_env_port(), warn() + +### Community 323 - "Community 323" +Cohesion: 0.20 +Nodes (7): a, c, d, m, n(), p, s() + +### Community 324 - "Community 324" +Cohesion: 0.24 +Nodes (6): get_available_models(), pull_model(), pull_ollama_model_background_task(), upsert_ollama_pull_status(), OllamaPullStatus, list_pulled_ollama_models() + +### Community 325 - "Community 325" +Cohesion: 0.40 +Nodes (10): File Icon, File CPP Bold Icon, File DOC Bold Icon, File INI Bold Icon, File MD Bold Icon, File PY Bold Icon, File TSX Bold Icon, File Vue Bold Icon (+2 more) + +### Community 326 - "Community 326" +Cohesion: 0.22 +Nodes (10): Battery Medium Bold Icon, Bug Bold Icon, Calculator Bold Icon, Circuitry Bold Icon, Technology Icon Category, CPU Bold Icon, Facebook Logo Bold Icon, Fire Extinguisher Bold Icon (+2 more) + +### Community 327 - "Community 327" +Cohesion: 0.20 +Nodes (7): ei(), en(), eo(), N, o, q(), u() + +### Community 328 - "Community 328" +Cohesion: 0.20 +Nodes (9): ampDevFiles, ampFirstPages, devFiles, lowPriorityFiles, pages, /_app, /_error, polyfillFiles (+1 more) + +### Community 329 - "Community 329" +Cohesion: 0.22 +Nodes (9): e, k(), [n,l], r, s, t, [x,m], y (+1 more) + +### Community 330 - "Community 330" +Cohesion: 0.20 +Nodes (6): get_available_models(), get_available_models(), get_available_models(), list_available_anthropic_models(), list_available_google_models(), list_available_openai_compatible_models() + +### Community 331 - "Community 331" +Cohesion: 0.22 +Nodes (9): eb(), eC(), ef(), eg(), eh(), eN(), es, ev() (+1 more) + +### Community 333 - "Community 333" +Cohesion: 0.25 +Nodes (9): eC(), ef(), eg(), eN(), es(), eu(), ey(), O (+1 more) + +### Community 335 - "Community 335" +Cohesion: 0.28 +Nodes (6): a, b(), c, n(), S(), t + +### Community 337 - "Community 337" +Cohesion: 0.31 +Nodes (9): eoI(), eoN(), qv(), skip(), skipKey(), stop(), traverse(), UU() (+1 more) + +### Community 338 - "Community 338" +Cohesion: 0.22 +Nodes (8): IntroSlideData, IntroSlideLayoutProps, introSlideSchema, ImageSchema, IntroSlideLayout(), Schema, SlideData, SlideLayoutProps + +### Community 339 - "Community 339" +Cohesion: 0.25 +Nodes (7): a(), i, l, n, o, s, u + +### Community 340 - "Community 340" +Cohesion: 0.28 +Nodes (3): HTMLParser, InlineHTMLToRunsParser, parse_html_text_to_text_runs() + +### Community 341 - "Community 341" +Cohesion: 0.33 +Nodes (7): _call_anthropic(), _call_google(), _call_openai(), _detect_llm_provider(), generate_vision_completion(), LLMProvider, Use only Google Gemini. No fallback providers. + +### Community 345 - "Community 345" +Cohesion: 0.29 +Nodes (6): eg(), ei(), eo(), ep(), g(), j + +### Community 347 - "Community 347" +Cohesion: 0.25 +Nodes (7): __dirname, finalPdf, input, prefix, rendered, renderedPdf, sources + +### Community 348 - "Community 348" +Cohesion: 0.25 +Nodes (3): CHART_COLORS, chartTypeEnum, Schema + +### Community 349 - "Community 349" +Cohesion: 0.25 +Nodes (6): CardSchema, IconSchema, ImageSchema, Schema, SlideData, SlideLayoutProps + +### Community 350 - "Community 350" +Cohesion: 0.25 +Nodes (6): CardSchema, IconSchema, ImageSchema, Schema, SlideData, SlideLayoutProps + +### Community 351 - "Community 351" +Cohesion: 0.25 +Nodes (8): ef(), ex(), ey(), tb(), tc, tj(), tw(), ty() + +### Community 352 - "Community 352" +Cohesion: 0.29 +Nodes (7): [d,l], e, [e,f], f, [o,c], r(), t + +### Community 354 - "Community 354" +Cohesion: 0.25 +Nodes (7): dynamicRoutes, notFoundRoutes, preview, previewModeEncryptionKey, previewModeId, previewModeSigningKey, version + +### Community 356 - "Community 356" +Cohesion: 0.38 +Nodes (7): aK(), lv(), s4(), sg(), sm(), sn(), sv() + +### Community 357 - "Community 357" +Cohesion: 0.29 +Nodes (7): c4, c5(), c6(), c8(), c2(), le(), m5() + +### Community 358 - "Community 358" +Cohesion: 0.29 +Nodes (3): CHART_COLORS, chartTypeEnum, Schema + +### Community 359 - "Community 359" +Cohesion: 0.29 +Nodes (3): CHART_COLORS, chartTypeEnum, Schema + +### Community 360 - "Community 360" +Cohesion: 0.29 +Nodes (3): chartTypeEnum, COLORS, Schema + +### Community 361 - "Community 361" +Cohesion: 0.29 +Nodes (3): chartTypeEnum, COLORS, Schema + +### Community 362 - "Community 362" +Cohesion: 0.29 +Nodes (5): CHART_COLORS, ChartDatumSchema, Schema, SlideData, SlideLayoutProps + +### Community 363 - "Community 363" +Cohesion: 0.29 +Nodes (5): IconSchema, ImageSchema, LayoutProps, Schema, SlideData + +### Community 364 - "Community 364" +Cohesion: 0.29 +Nodes (5): IconSchema, ImageSchema, Schema, SlideData, SlideLayoutProps + +### Community 365 - "Community 365" +Cohesion: 0.29 +Nodes (3): CHART_COLORS, chartTypeEnum, Schema + +### Community 366 - "Community 366" +Cohesion: 0.29 +Nodes (5): IconSchema, ImageSchema, Schema, SlideData, SlideLayoutProps + +### Community 367 - "Community 367" +Cohesion: 0.29 +Nodes (5): IconSchema, ItemSchema, Schema, SlideData, SlideLayoutProps + +### Community 368 - "Community 368" +Cohesion: 0.29 +Nodes (5): c, d, m, o, p + +### Community 369 - "Community 369" +Cohesion: 0.29 +Nodes (5): c, d, m, p, s + +### Community 370 - "Community 370" +Cohesion: 0.33 +Nodes (4): run_migrations_offline(), run_migrations_online(), get_database_url_and_connect_args(), get_database_url_env() + +### Community 371 - "Community 371" +Cohesion: 0.29 +Nodes (6): Test the slide-to-html endpoint with streaming API support., Test the endpoint with an invalid image path., Test the endpoint with missing XML data., test_slide_to_html_endpoint(), test_slide_to_html_invalid_path(), test_slide_to_html_missing_xml() + +### Community 372 - "Community 372" +Cohesion: 0.53 +Nodes (5): get_file_ext_or_none(), get_file_name_with_random_uuid(), get_original_file_name(), replace_file_name(), set_file_ext() + +### Community 373 - "Community 373" +Cohesion: 0.33 +Nodes (4): PointSchema, Schema, SlideData, SlideLayoutProps + +### Community 374 - "Community 374" +Cohesion: 0.33 +Nodes (5): c, d, f, p, s + +### Community 375 - "Community 375" +Cohesion: 0.33 +Nodes (3): $(), l, m + +### Community 378 - "Community 378" +Cohesion: 0.33 +Nodes (5): appDir, files, ignore, relativeAppDir, version + +### Community 379 - "Community 379" +Cohesion: 0.33 +Nodes (5): app, /Volumes/SSD/Projects/Oliver/ppt-tool/frontend/app/layout, appUsingSizeAdjust, pages, pagesUsingSizeAdjust + +### Community 381 - "Community 381" +Cohesion: 0.33 +Nodes (5): create_sample_pptx(), Test that non-PPTX files are rejected., Create a minimal PPTX file for testing., Test the PPTX slides processing endpoint., test_invalid_file_type() + +### Community 383 - "Community 383" +Cohesion: 0.40 +Nodes (3): CHART_COLORS, chartTypeEnum, Schema + +### Community 384 - "Community 384" +Cohesion: 0.40 +Nodes (4): exportTrailingSlash, hasExportPathMap, isNextImageImported, version + +### Community 385 - "Community 385" +Cohesion: 0.50 +Nodes (5): a, d, i(), l, n + +### Community 391 - "Community 391" +Cohesion: 0.40 +Nodes (4): /404, /_app, /_document, /_error + +### Community 392 - "Community 392" +Cohesion: 0.50 +Nodes (5): ea(), er(), es(), et(), y() + +### Community 393 - "Community 393" +Cohesion: 0.40 +Nodes (5): a, el(), f(), i, p + +### Community 395 - "Community 395" +Cohesion: 0.40 +Nodes (4): functions, middleware, sortedMiddleware, version + +### Community 396 - "Community 396" +Cohesion: 0.40 +Nodes (4): downgrade(), Remove RLS policies and disable RLS., Enable RLS and create policies for client-scoped tables., upgrade() + +### Community 398 - "Community 398" +Cohesion: 0.67 +Nodes (4): edj(), edS(), edT(), edw() + +### Community 399 - "Community 399" +Cohesion: 0.50 +Nodes (3): outputStyle, permissions, allow + +### Community 400 - "Community 400" +Cohesion: 0.50 +Nodes (4): Finance Icon Category, Credit Card Bold Icon, Currency Dollar Bold Icon, Piggy Bank Bold Icon + +### Community 401 - "Community 401" +Cohesion: 0.50 +Nodes (3): body, email, name + +### Community 402 - "Community 402" +Cohesion: 0.50 +Nodes (3): default, description, ordered + +### Community 403 - "Community 403" +Cohesion: 0.50 +Nodes (3): default, description, ordered + +### Community 404 - "Community 404" +Cohesion: 0.50 +Nodes (3): default, description, ordered + +### Community 406 - "Community 406" +Cohesion: 0.50 +Nodes (3): default, description, ordered + +### Community 407 - "Community 407" +Cohesion: 0.50 +Nodes (3): default, description, ordered + +### Community 408 - "Community 408" +Cohesion: 0.50 +Nodes (3): default, description, ordered + +### Community 409 - "Community 409" +Cohesion: 0.50 +Nodes (3): default, description, ordered + +### Community 410 - "Community 410" +Cohesion: 0.50 +Nodes (3): default, description, ordered + +### Community 414 - "Community 414" +Cohesion: 0.50 +Nodes (4): E(), ee(), g(), J + +### Community 416 - "Community 416" +Cohesion: 0.50 +Nodes (3): get_limiter(), Rate limiting middleware using slowapi. Provides protection against DOS attacks, Get the limiter instance for use in route decorators. + +### Community 417 - "Community 417" +Cohesion: 0.67 +Nodes (4): modularizeImports, transform, lodash, @mui/icons-material + +### Community 418 - "Community 418" +Cohesion: 0.50 +Nodes (4): _originalRewrites, afterFiles, beforeFiles, fallback + +### Community 420 - "Community 420" +Cohesion: 0.67 +Nodes (4): File Type Icons, PDF SVG Icon, PPTX SVG Icon, Report PNG Image + +### Community 421 - "Community 421" +Cohesion: 0.50 +Nodes (3): edge, encryptionKey, node + +### Community 422 - "Community 422" +Cohesion: 0.50 +Nodes (3): Safe error handler for FastAPI. Logs full error details internally but returns, Handle unhandled exceptions safely. - Logs full error details with context, safe_exception_handler() + +### Community 429 - "Community 429" +Cohesion: 1.00 +Nodes (3): Branding / Logo Assets, Logo PNG, Logo White PNG + +### Community 434 - "Community 434" +Cohesion: 0.67 +Nodes (3): MetricsSlideData, MetricsSlideLayout(), metricsSlideSchema + +### Community 435 - "Community 435" +Cohesion: 0.67 +Nodes (3): TableInfoSlideData, TableInfoSlideLayout(), tableInfoSlideSchema + +### Community 463 - "Community 463" +Cohesion: 0.67 +Nodes (3): devIndicators, buildActivity, buildActivityPosition + +### Community 464 - "Community 464" +Cohesion: 0.67 +Nodes (3): onDemandEntries, maxInactiveAge, pagesBufferLength + +### Community 465 - "Community 465" +Cohesion: 0.67 +Nodes (3): staleTimes, dynamic, static + +### Community 466 - "Community 466" +Cohesion: 0.67 +Nodes (3): typescript, ignoreBuildErrors, tsconfigPath + +## Ambiguous Edges - Review These +- `Bold Icon Set` → `Phosphor Icons Style` [AMBIGUOUS] + backend/static/icons/bold/ · relation: conceptually_related_to +- `Report PNG Image` → `File Type Icons` [AMBIGUOUS] + frontend/public/report.png · relation: conceptually_related_to +- `Hourglass Simple Low Bold Icon` → `Cell Signal Medium Bold Icon` [AMBIGUOUS] + backend/static/icons/bold/hourglass-simple-low-bold.svg · relation: semantically_similar_to + +## Knowledge Gaps +- **3849 isolated node(s):** `config`, `config`, `name`, `version`, `private` (+3844 more) + These have ≤1 connection - possible missing edges or undocumented components. +- **112 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes. + +## Suggested Questions +_Questions this graph is uniquely positioned to answer:_ + +- **What is the exact relationship between `Bold Icon Set` and `Phosphor Icons Style`?** + _Edge tagged AMBIGUOUS (relation: conceptually_related_to) - confidence is low._ +- **What is the exact relationship between `Report PNG Image` and `File Type Icons`?** + _Edge tagged AMBIGUOUS (relation: conceptually_related_to) - confidence is low._ +- **What is the exact relationship between `Hourglass Simple Low Bold Icon` and `Cell Signal Medium Bold Icon`?** + _Edge tagged AMBIGUOUS (relation: semantically_similar_to) - confidence is low._ +- **Why does `E_()` connect `Community 26` to `Community 1`, `Community 8`, `Community 12`, `Community 15`, `Community 17`, `Community 114`, `Community 19`, `Community 116`, `Community 90`?** + _High betweenness centrality (0.201) - this node is a cross-community bridge._ +- **Why does `PresentationModel` connect `Community 66` to `Community 69`, `Community 75`, `Community 139`, `Community 13`, `Community 21`, `Community 22`, `Community 25`, `Community 63`?** + _High betweenness centrality (0.116) - this node is a cross-community bridge._ +- **Why does `Magnifying Glass Bold Icon` connect `Community 5` to `Community 64`, `Community 2`?** + _High betweenness centrality (0.109) - this node is a cross-community bridge._ +- **Are the 448 inferred relationships involving `Bold Icon Set` (e.g. with `Drop Half Bold Icon` and `Ping Pong Bold Icon`) actually correct?** + _`Bold Icon Set` has 448 INFERRED edges - model-reasoned connections that need verification._ \ No newline at end of file diff --git a/wiki/architecture/presenton-structure.md b/wiki/architecture/presenton-structure.md new file mode 100644 index 0000000..1e5c8a8 --- /dev/null +++ b/wiki/architecture/presenton-structure.md @@ -0,0 +1,1143 @@ +--- +tags: [architecture, graphify, presenton] +updated: 2026-05-18 +--- + +# Graph Report - /Users/ai_leed/Documents/Projects/Oliver/presenton (2026-05-18) + +## Corpus Check +- cluster-only mode — file stats not available + +## Summary +- 3853 nodes · 6037 edges · 357 communities (213 shown, 144 thin omitted) +- Extraction: 65% EXTRACTED · 35% INFERRED · 0% AMBIGUOUS · INFERRED: 2140 edges (avg confidence: 0.88) +- Token cost: 0 input · 0 output + +## Graph Freshness +- Built from commit: `54eddd70` +- Run `git rev-parse HEAD` and compare to check if the graph is stale. +- Run `graphify update .` after code changes (no API cost). + +## Community Hubs (Navigation) +- [[_COMMUNITY_Community 0|Community 0]] +- [[_COMMUNITY_Community 1|Community 1]] +- [[_COMMUNITY_Community 2|Community 2]] +- [[_COMMUNITY_Community 3|Community 3]] +- [[_COMMUNITY_Community 4|Community 4]] +- [[_COMMUNITY_Community 5|Community 5]] +- [[_COMMUNITY_Community 6|Community 6]] +- [[_COMMUNITY_Community 7|Community 7]] +- [[_COMMUNITY_Community 8|Community 8]] +- [[_COMMUNITY_Community 9|Community 9]] +- [[_COMMUNITY_Community 10|Community 10]] +- [[_COMMUNITY_Community 11|Community 11]] +- [[_COMMUNITY_Community 12|Community 12]] +- [[_COMMUNITY_Community 13|Community 13]] +- [[_COMMUNITY_Community 14|Community 14]] +- [[_COMMUNITY_Community 15|Community 15]] +- [[_COMMUNITY_Community 16|Community 16]] +- [[_COMMUNITY_Community 17|Community 17]] +- [[_COMMUNITY_Community 18|Community 18]] +- [[_COMMUNITY_Community 19|Community 19]] +- [[_COMMUNITY_Community 20|Community 20]] +- [[_COMMUNITY_Community 21|Community 21]] +- [[_COMMUNITY_Community 22|Community 22]] +- [[_COMMUNITY_Community 23|Community 23]] +- [[_COMMUNITY_Community 24|Community 24]] +- [[_COMMUNITY_Community 25|Community 25]] +- [[_COMMUNITY_Community 26|Community 26]] +- [[_COMMUNITY_Community 27|Community 27]] +- [[_COMMUNITY_Community 28|Community 28]] +- [[_COMMUNITY_Community 29|Community 29]] +- [[_COMMUNITY_Community 30|Community 30]] +- [[_COMMUNITY_Community 31|Community 31]] +- [[_COMMUNITY_Community 32|Community 32]] +- [[_COMMUNITY_Community 33|Community 33]] +- [[_COMMUNITY_Community 34|Community 34]] +- [[_COMMUNITY_Community 35|Community 35]] +- [[_COMMUNITY_Community 36|Community 36]] +- [[_COMMUNITY_Community 37|Community 37]] +- [[_COMMUNITY_Community 38|Community 38]] +- [[_COMMUNITY_Community 39|Community 39]] +- [[_COMMUNITY_Community 40|Community 40]] +- [[_COMMUNITY_Community 41|Community 41]] +- [[_COMMUNITY_Community 42|Community 42]] +- [[_COMMUNITY_Community 43|Community 43]] +- [[_COMMUNITY_Community 44|Community 44]] +- [[_COMMUNITY_Community 45|Community 45]] +- [[_COMMUNITY_Community 46|Community 46]] +- [[_COMMUNITY_Community 47|Community 47]] +- [[_COMMUNITY_Community 48|Community 48]] +- [[_COMMUNITY_Community 49|Community 49]] +- [[_COMMUNITY_Community 50|Community 50]] +- [[_COMMUNITY_Community 51|Community 51]] +- [[_COMMUNITY_Community 52|Community 52]] +- [[_COMMUNITY_Community 53|Community 53]] +- [[_COMMUNITY_Community 54|Community 54]] +- [[_COMMUNITY_Community 55|Community 55]] +- [[_COMMUNITY_Community 56|Community 56]] +- [[_COMMUNITY_Community 57|Community 57]] +- [[_COMMUNITY_Community 58|Community 58]] +- [[_COMMUNITY_Community 59|Community 59]] +- [[_COMMUNITY_Community 60|Community 60]] +- [[_COMMUNITY_Community 61|Community 61]] +- [[_COMMUNITY_Community 62|Community 62]] +- [[_COMMUNITY_Community 63|Community 63]] +- [[_COMMUNITY_Community 64|Community 64]] +- [[_COMMUNITY_Community 65|Community 65]] +- [[_COMMUNITY_Community 66|Community 66]] +- [[_COMMUNITY_Community 67|Community 67]] +- [[_COMMUNITY_Community 68|Community 68]] +- [[_COMMUNITY_Community 69|Community 69]] +- [[_COMMUNITY_Community 70|Community 70]] +- [[_COMMUNITY_Community 71|Community 71]] +- [[_COMMUNITY_Community 72|Community 72]] +- [[_COMMUNITY_Community 73|Community 73]] +- [[_COMMUNITY_Community 74|Community 74]] +- [[_COMMUNITY_Community 75|Community 75]] +- [[_COMMUNITY_Community 76|Community 76]] +- [[_COMMUNITY_Community 77|Community 77]] +- [[_COMMUNITY_Community 78|Community 78]] +- [[_COMMUNITY_Community 79|Community 79]] +- [[_COMMUNITY_Community 80|Community 80]] +- [[_COMMUNITY_Community 81|Community 81]] +- [[_COMMUNITY_Community 82|Community 82]] +- [[_COMMUNITY_Community 83|Community 83]] +- [[_COMMUNITY_Community 84|Community 84]] +- [[_COMMUNITY_Community 85|Community 85]] +- [[_COMMUNITY_Community 86|Community 86]] +- [[_COMMUNITY_Community 87|Community 87]] +- [[_COMMUNITY_Community 88|Community 88]] +- [[_COMMUNITY_Community 89|Community 89]] +- [[_COMMUNITY_Community 90|Community 90]] +- [[_COMMUNITY_Community 91|Community 91]] +- [[_COMMUNITY_Community 92|Community 92]] +- [[_COMMUNITY_Community 93|Community 93]] +- [[_COMMUNITY_Community 94|Community 94]] +- [[_COMMUNITY_Community 95|Community 95]] +- [[_COMMUNITY_Community 96|Community 96]] +- [[_COMMUNITY_Community 97|Community 97]] +- [[_COMMUNITY_Community 98|Community 98]] +- [[_COMMUNITY_Community 99|Community 99]] +- [[_COMMUNITY_Community 100|Community 100]] +- [[_COMMUNITY_Community 101|Community 101]] +- [[_COMMUNITY_Community 102|Community 102]] +- [[_COMMUNITY_Community 103|Community 103]] +- [[_COMMUNITY_Community 104|Community 104]] +- [[_COMMUNITY_Community 105|Community 105]] +- [[_COMMUNITY_Community 106|Community 106]] +- [[_COMMUNITY_Community 107|Community 107]] +- [[_COMMUNITY_Community 108|Community 108]] +- [[_COMMUNITY_Community 109|Community 109]] +- [[_COMMUNITY_Community 110|Community 110]] +- [[_COMMUNITY_Community 111|Community 111]] +- [[_COMMUNITY_Community 112|Community 112]] +- [[_COMMUNITY_Community 113|Community 113]] +- [[_COMMUNITY_Community 114|Community 114]] +- [[_COMMUNITY_Community 115|Community 115]] +- [[_COMMUNITY_Community 116|Community 116]] +- [[_COMMUNITY_Community 117|Community 117]] +- [[_COMMUNITY_Community 118|Community 118]] +- [[_COMMUNITY_Community 119|Community 119]] +- [[_COMMUNITY_Community 120|Community 120]] +- [[_COMMUNITY_Community 121|Community 121]] +- [[_COMMUNITY_Community 122|Community 122]] +- [[_COMMUNITY_Community 123|Community 123]] +- [[_COMMUNITY_Community 124|Community 124]] +- [[_COMMUNITY_Community 125|Community 125]] +- [[_COMMUNITY_Community 126|Community 126]] +- [[_COMMUNITY_Community 127|Community 127]] +- [[_COMMUNITY_Community 128|Community 128]] +- [[_COMMUNITY_Community 129|Community 129]] +- [[_COMMUNITY_Community 130|Community 130]] +- [[_COMMUNITY_Community 131|Community 131]] +- [[_COMMUNITY_Community 132|Community 132]] +- [[_COMMUNITY_Community 133|Community 133]] +- [[_COMMUNITY_Community 134|Community 134]] +- [[_COMMUNITY_Community 135|Community 135]] +- [[_COMMUNITY_Community 136|Community 136]] +- [[_COMMUNITY_Community 137|Community 137]] +- [[_COMMUNITY_Community 138|Community 138]] +- [[_COMMUNITY_Community 139|Community 139]] +- [[_COMMUNITY_Community 140|Community 140]] +- [[_COMMUNITY_Community 141|Community 141]] +- [[_COMMUNITY_Community 142|Community 142]] +- [[_COMMUNITY_Community 143|Community 143]] +- [[_COMMUNITY_Community 144|Community 144]] +- [[_COMMUNITY_Community 145|Community 145]] +- [[_COMMUNITY_Community 146|Community 146]] +- [[_COMMUNITY_Community 147|Community 147]] +- [[_COMMUNITY_Community 148|Community 148]] +- [[_COMMUNITY_Community 149|Community 149]] +- [[_COMMUNITY_Community 150|Community 150]] +- [[_COMMUNITY_Community 151|Community 151]] +- [[_COMMUNITY_Community 152|Community 152]] +- [[_COMMUNITY_Community 153|Community 153]] +- [[_COMMUNITY_Community 154|Community 154]] +- [[_COMMUNITY_Community 155|Community 155]] +- [[_COMMUNITY_Community 156|Community 156]] +- [[_COMMUNITY_Community 157|Community 157]] +- [[_COMMUNITY_Community 158|Community 158]] +- [[_COMMUNITY_Community 159|Community 159]] +- [[_COMMUNITY_Community 160|Community 160]] +- [[_COMMUNITY_Community 161|Community 161]] +- [[_COMMUNITY_Community 162|Community 162]] +- [[_COMMUNITY_Community 163|Community 163]] +- [[_COMMUNITY_Community 164|Community 164]] +- [[_COMMUNITY_Community 165|Community 165]] +- [[_COMMUNITY_Community 166|Community 166]] +- [[_COMMUNITY_Community 167|Community 167]] +- [[_COMMUNITY_Community 168|Community 168]] +- [[_COMMUNITY_Community 169|Community 169]] +- [[_COMMUNITY_Community 170|Community 170]] +- [[_COMMUNITY_Community 171|Community 171]] +- [[_COMMUNITY_Community 172|Community 172]] +- [[_COMMUNITY_Community 173|Community 173]] +- [[_COMMUNITY_Community 174|Community 174]] +- [[_COMMUNITY_Community 175|Community 175]] +- [[_COMMUNITY_Community 176|Community 176]] +- [[_COMMUNITY_Community 177|Community 177]] +- [[_COMMUNITY_Community 178|Community 178]] +- [[_COMMUNITY_Community 179|Community 179]] +- [[_COMMUNITY_Community 180|Community 180]] +- [[_COMMUNITY_Community 181|Community 181]] +- [[_COMMUNITY_Community 182|Community 182]] +- [[_COMMUNITY_Community 183|Community 183]] +- [[_COMMUNITY_Community 184|Community 184]] +- [[_COMMUNITY_Community 185|Community 185]] +- [[_COMMUNITY_Community 186|Community 186]] +- [[_COMMUNITY_Community 187|Community 187]] +- [[_COMMUNITY_Community 188|Community 188]] +- [[_COMMUNITY_Community 189|Community 189]] +- [[_COMMUNITY_Community 190|Community 190]] +- [[_COMMUNITY_Community 191|Community 191]] +- [[_COMMUNITY_Community 192|Community 192]] +- [[_COMMUNITY_Community 193|Community 193]] +- [[_COMMUNITY_Community 194|Community 194]] +- [[_COMMUNITY_Community 195|Community 195]] +- [[_COMMUNITY_Community 196|Community 196]] +- [[_COMMUNITY_Community 197|Community 197]] +- [[_COMMUNITY_Community 198|Community 198]] +- [[_COMMUNITY_Community 199|Community 199]] +- [[_COMMUNITY_Community 200|Community 200]] +- [[_COMMUNITY_Community 201|Community 201]] +- [[_COMMUNITY_Community 202|Community 202]] +- [[_COMMUNITY_Community 203|Community 203]] +- [[_COMMUNITY_Community 204|Community 204]] +- [[_COMMUNITY_Community 205|Community 205]] +- [[_COMMUNITY_Community 206|Community 206]] +- [[_COMMUNITY_Community 207|Community 207]] +- [[_COMMUNITY_Community 208|Community 208]] +- [[_COMMUNITY_Community 209|Community 209]] +- [[_COMMUNITY_Community 210|Community 210]] +- [[_COMMUNITY_Community 211|Community 211]] +- [[_COMMUNITY_Community 212|Community 212]] +- [[_COMMUNITY_Community 213|Community 213]] +- [[_COMMUNITY_Community 214|Community 214]] +- [[_COMMUNITY_Community 215|Community 215]] +- [[_COMMUNITY_Community 216|Community 216]] +- [[_COMMUNITY_Community 217|Community 217]] +- [[_COMMUNITY_Community 218|Community 218]] +- [[_COMMUNITY_Community 219|Community 219]] +- [[_COMMUNITY_Community 220|Community 220]] +- [[_COMMUNITY_Community 221|Community 221]] +- [[_COMMUNITY_Community 222|Community 222]] +- [[_COMMUNITY_Community 223|Community 223]] +- [[_COMMUNITY_Community 224|Community 224]] +- [[_COMMUNITY_Community 225|Community 225]] +- [[_COMMUNITY_Community 226|Community 226]] +- [[_COMMUNITY_Community 227|Community 227]] +- [[_COMMUNITY_Community 228|Community 228]] +- [[_COMMUNITY_Community 229|Community 229]] +- [[_COMMUNITY_Community 230|Community 230]] +- [[_COMMUNITY_Community 231|Community 231]] +- [[_COMMUNITY_Community 232|Community 232]] +- [[_COMMUNITY_Community 233|Community 233]] +- [[_COMMUNITY_Community 234|Community 234]] +- [[_COMMUNITY_Community 235|Community 235]] +- [[_COMMUNITY_Community 236|Community 236]] +- [[_COMMUNITY_Community 237|Community 237]] +- [[_COMMUNITY_Community 238|Community 238]] +- [[_COMMUNITY_Community 239|Community 239]] +- [[_COMMUNITY_Community 240|Community 240]] +- [[_COMMUNITY_Community 241|Community 241]] +- [[_COMMUNITY_Community 242|Community 242]] +- [[_COMMUNITY_Community 243|Community 243]] +- [[_COMMUNITY_Community 244|Community 244]] +- [[_COMMUNITY_Community 245|Community 245]] +- [[_COMMUNITY_Community 246|Community 246]] +- [[_COMMUNITY_Community 247|Community 247]] +- [[_COMMUNITY_Community 248|Community 248]] +- [[_COMMUNITY_Community 249|Community 249]] +- [[_COMMUNITY_Community 250|Community 250]] +- [[_COMMUNITY_Community 251|Community 251]] +- [[_COMMUNITY_Community 252|Community 252]] +- [[_COMMUNITY_Community 253|Community 253]] +- [[_COMMUNITY_Community 254|Community 254]] +- [[_COMMUNITY_Community 255|Community 255]] +- [[_COMMUNITY_Community 256|Community 256]] +- [[_COMMUNITY_Community 257|Community 257]] +- [[_COMMUNITY_Community 258|Community 258]] +- [[_COMMUNITY_Community 259|Community 259]] +- [[_COMMUNITY_Community 260|Community 260]] +- [[_COMMUNITY_Community 261|Community 261]] +- [[_COMMUNITY_Community 262|Community 262]] +- [[_COMMUNITY_Community 263|Community 263]] +- [[_COMMUNITY_Community 272|Community 272]] +- [[_COMMUNITY_Community 273|Community 273]] +- [[_COMMUNITY_Community 274|Community 274]] +- [[_COMMUNITY_Community 275|Community 275]] +- [[_COMMUNITY_Community 276|Community 276]] +- [[_COMMUNITY_Community 277|Community 277]] +- [[_COMMUNITY_Community 278|Community 278]] +- [[_COMMUNITY_Community 279|Community 279]] +- [[_COMMUNITY_Community 280|Community 280]] +- [[_COMMUNITY_Community 281|Community 281]] +- [[_COMMUNITY_Community 282|Community 282]] +- [[_COMMUNITY_Community 283|Community 283]] +- [[_COMMUNITY_Community 284|Community 284]] +- [[_COMMUNITY_Community 285|Community 285]] +- [[_COMMUNITY_Community 286|Community 286]] +- [[_COMMUNITY_Community 287|Community 287]] +- [[_COMMUNITY_Community 288|Community 288]] +- [[_COMMUNITY_Community 289|Community 289]] +- [[_COMMUNITY_Community 290|Community 290]] +- [[_COMMUNITY_Community 291|Community 291]] +- [[_COMMUNITY_Community 292|Community 292]] +- [[_COMMUNITY_Community 293|Community 293]] +- [[_COMMUNITY_Community 294|Community 294]] +- [[_COMMUNITY_Community 295|Community 295]] +- [[_COMMUNITY_Community 296|Community 296]] +- [[_COMMUNITY_Community 297|Community 297]] +- [[_COMMUNITY_Community 298|Community 298]] +- [[_COMMUNITY_Community 299|Community 299]] +- [[_COMMUNITY_Community 300|Community 300]] +- [[_COMMUNITY_Community 301|Community 301]] +- [[_COMMUNITY_Community 302|Community 302]] +- [[_COMMUNITY_Community 303|Community 303]] +- [[_COMMUNITY_Community 304|Community 304]] +- [[_COMMUNITY_Community 305|Community 305]] +- [[_COMMUNITY_Community 306|Community 306]] +- [[_COMMUNITY_Community 307|Community 307]] +- [[_COMMUNITY_Community 308|Community 308]] +- [[_COMMUNITY_Community 309|Community 309]] +- [[_COMMUNITY_Community 310|Community 310]] +- [[_COMMUNITY_Community 311|Community 311]] +- [[_COMMUNITY_Community 312|Community 312]] +- [[_COMMUNITY_Community 313|Community 313]] +- [[_COMMUNITY_Community 322|Community 322]] +- [[_COMMUNITY_Community 323|Community 323]] +- [[_COMMUNITY_Community 324|Community 324]] +- [[_COMMUNITY_Community 337|Community 337]] +- [[_COMMUNITY_Community 338|Community 338]] +- [[_COMMUNITY_Community 339|Community 339]] +- [[_COMMUNITY_Community 340|Community 340]] +- [[_COMMUNITY_Community 341|Community 341]] +- [[_COMMUNITY_Community 342|Community 342]] +- [[_COMMUNITY_Community 343|Community 343]] +- [[_COMMUNITY_Community 344|Community 344]] +- [[_COMMUNITY_Community 345|Community 345]] +- [[_COMMUNITY_Community 346|Community 346]] +- [[_COMMUNITY_Community 347|Community 347]] +- [[_COMMUNITY_Community 348|Community 348]] +- [[_COMMUNITY_Community 349|Community 349]] +- [[_COMMUNITY_Community 350|Community 350]] +- [[_COMMUNITY_Community 351|Community 351]] +- [[_COMMUNITY_Community 352|Community 352]] +- [[_COMMUNITY_Community 353|Community 353]] +- [[_COMMUNITY_Community 354|Community 354]] +- [[_COMMUNITY_Community 355|Community 355]] +- [[_COMMUNITY_Community 356|Community 356]] + +## God Nodes (most connected - your core abstractions) +1. `Bold Icon Set (Phosphor-style)` - 135 edges +2. `Bold Icon Style Concept` - 81 edges +3. `LLMClient` - 63 edges +4. `cn()` - 45 edges +5. `pptx_presentation_creator.py` - 45 edges +6. `PresentationGenerationApi` - 43 edges +7. `Presentation` - 41 edges +8. `ConfigurationSelects()` - 39 edges +9. `Button` - 30 edges +10. `image_generation_service.py` - 29 edges + +## Surprising Connections (you probably didn't know these) +- `Requirements Doc (docs/project/requirements.md)` --semantically_similar_to--> `Requirements Doc` [INFERRED] [semantically similar] + docs/README.md → AGENTS.md +- `API One-shot Workflow` --semantically_similar_to--> `API Endpoint: /api/v1/ppt/presentation/generate` [INFERRED] [semantically similar] + docs/project/requirements.md → README.md +- `Model for storing presentation layout codes` --rationale_for--> `presentation_layout_codes Table` [EXTRACTED] + servers/fastapi/models/sql/presentation_layout_code.py → docs/project/database_schema.md +- `generate_presentation_outlines.py` --calls--> `check_if_api_request_is_valid()` [EXTRACTED] + AGENTS.md → servers/fastapi/api/v1/ppt/endpoints/presentation.py +- `generate_presentation_outlines.py` --calls--> `generate_presentation_handler()` [EXTRACTED] + AGENTS.md → servers/fastapi/api/v1/ppt/endpoints/presentation.py + +## Communities (357 total, 144 thin omitted) + +### Community 0 - "Community 0" +Cohesion: 0.01 +Nodes (274): Airplane In Flight Bold Icon, Align Center Vertical Bold Icon, Align Center Vertical Simple Bold Icon, Align Left Simple Bold Icon, Ambulance Bold Icon, Armchair Bold Icon, Arrow Bend Down Right Bold Icon, Arrow Elbow Down Left Bold Icon (+266 more) + +### Community 1 - "Community 1" +Cohesion: 0.01 +Nodes (229): Air Traffic Control Bold Icon, Airplane Takeoff Bold Icon, Align Bottom Bold Icon, Align Center Horizontal Simple Bold Icon, App Window Bold Icon, Approximate Equals Bold Icon, Archive Bold Icon, Arrow Bend Down Left Bold Icon (+221 more) + +### Community 2 - "Community 2" +Cohesion: 0.02 +Nodes (58): MetricsSlideData, MetricsSlideLayout(), metricsSlideSchema, CardProps, Schema, Schema, HeadlineDescriptionWithImageLayout(), Schema (+50 more) + +### Community 3 - "Community 3" +Cohesion: 0.02 +Nodes (116): Align Top Simple Bold Icon, App Store Logo Bold Icon, Arrow Elbow Down Right Bold Icon, Arrow Fat Left Bold Icon, Baby Bold Icon, Basketball Bold Icon, Battery Warning Bold Icon, Bell Simple Bold Icon (+108 more) + +### Community 4 - "Community 4" +Cohesion: 0.03 +Nodes (73): BasicInfoSlideData, BasicInfoSlideLayout(), basicInfoSlideSchema, BulletIconsOnlySlideData, BulletIconsOnlySlideLayout(), BulletWithIconsSlideData, BulletWithIconsSlideLayoutProps, bulletWithIconsSlideSchema (+65 more) + +### Community 5 - "Community 5" +Cohesion: 0.02 +Nodes (93): Airplane Tilt Bold Icon, Align Right Bold Icon, Amazon Logo Bold Icon, Arrow Circle Down Bold Icon, Arrows In Cardinal Bold Icon, Atom Bold Icon, Avocado Bold Icon, Bag Simple Bold Icon (+85 more) + +### Community 6 - "Community 6" +Cohesion: 0.02 +Nodes (91): Airplane Taxiing Bold Icon, Airplay Bold Icon, Anchor Bold Icon, Angle Bold Icon, Arrow Bend Right Up Bold Icon, Arrow Circle Up Right Bold Icon, Arrow Line Down Right Bold Icon, Arrows In Line Horizontal Bold Icon (+83 more) + +### Community 7 - "Community 7" +Cohesion: 0.03 +Nodes (73): Arrow Bend Double Up Left Bold Icon, Arrow Circle Left Bold Icon, Arrows Horizontal Bold Icon, Arrows Out Simple Bold Icon, Asclepius Bold Icon, Backspace Bold Icon, Bell Simple Z Bold Icon, Book Open Text Bold Icon (+65 more) + +### Community 8 - "Community 8" +Cohesion: 0.03 +Nodes (72): Align Left Bold Icon, Arrow Line Down Bold Icon, Arrow Square Down Left Bold Icon, Arrows Down Up Bold Icon, Arrows Out Cardinal Bold Icon, Barbell Bold Icon, Bell Simple Ringing Bold Icon, Bold Icon Style (+64 more) + +### Community 9 - "Community 9" +Cohesion: 0.07 +Nodes (65): content, description, post, get, components, schemas, application/json, multipart/form-data (+57 more) + +### Community 10 - "Community 10" +Cohesion: 0.06 +Nodes (47): ApiError, sharp, closeBrowserAndPage(), convertSvgToPng(), GET(), getAllChildElementsAttributes(), getBrowserAndPage(), getElementAttributes() (+39 more) + +### Community 11 - "Community 11" +Cohesion: 0.04 +Nodes (51): dependencies, @babel/standalone, class-variance-authority, clsx, cmdk, @dnd-kit/core, @dnd-kit/sortable, @dnd-kit/utilities (+43 more) + +### Community 12 - "Community 12" +Cohesion: 0.06 +Nodes (36): POST /files/upload, POST /pptx-slides/process, DocumentsLoader, decompose_files(), upload_files(), analyze_fonts_in_all_slides(), check_google_font_availability(), _convert_pptx_to_pdf() (+28 more) + +### Community 13 - "Community 13" +Cohesion: 0.06 +Nodes (30): DashboardApi, GET /outlines/stream/{id}, PresentationModel, SlideModel, DashboardPage(), EmptyState(), PresentationGridProps, SaveLayoutButton() (+22 more) + +### Community 14 - "Community 14" +Cohesion: 0.04 +Nodes (50): Acorn Bold Icon, Alarm Bold Icon, Anchor Simple Bold Icon, Bold Icon Style Concept, Brackets Square Bold Icon, Cards Three Bold Icon, Chart Line Up Bold Icon, Cloud Fog Bold Icon (+42 more) + +### Community 15 - "Community 15" +Cohesion: 0.06 +Nodes (23): FileWithId, SupportingDoc(), Wrapper(), WrapperProps, cn(), ConcurrentService, Label, labelVariants (+15 more) + +### Community 16 - "Community 16" +Cohesion: 0.08 +Nodes (34): ConfigurationSelects(), ConfigurationSelectsProps, SlideOption, PromptInput(), PromptInputProps, SaveLayoutModal(), LoadingState, UploadPage() (+26 more) + +### Community 17 - "Community 17" +Cohesion: 0.09 +Nodes (25): GenerateButton(), GenerateButtonProps, OutlineContentProps, OutlinePage(), useOutlineManagement(), DEFAULT_LOADING_STATE, usePresentationGeneration(), usePresentationStreaming() (+17 more) + +### Community 18 - "Community 18" +Cohesion: 0.06 +Nodes (42): Alien Bold Icon, Align Center Horizontal Bold Icon, Align Right Simple Bold Icon, Arrow Bend Left Down Bold Icon, Arrow Circle Down Left Bold Icon, At Bold Icon, Bluetooth Slash Bold Icon, Bold Icon Set (+34 more) + +### Community 19 - "Community 19" +Cohesion: 0.10 +Nodes (39): Template Management Endpoints, presentation_layout_codes Table, templates Table, get_presentation(), convert_html_to_react(), convert_slide_to_html(), create_template(), edit_html_with_images() (+31 more) + +### Community 20 - "Community 20" +Cohesion: 0.06 +Nodes (30): Test start_presentation with invalid prompt type (None). Expects error s, Tests for the help tool, Test help tool with no parameters. Checks for info status and presence o, Tests for the continue_workflow tool, Test continue_workflow with valid session_id. Checks for correct status, Test continue_workflow with missing session_id. Expects error status and, Tests for the export_presentation tool, Test export_presentation with format 'pptx'. Checks for success status, (+22 more) + +### Community 21 - "Community 21" +Cohesion: 0.14 +Nodes (27): AnthropicConfig(), AnthropicConfigProps, CustomConfig(), CustomConfigProps, GoogleConfig(), ImageEditor(), ImageEditorProps, ButtonState (+19 more) + +### Community 22 - "Community 22" +Cohesion: 0.05 +Nodes (26): ChartWithBulletsSlideData, ChartWithBulletsSlideLayoutProps, chartWithBulletsSlideSchema, DEFAULT_CHART_COLORS, divergingDataSchema, multiSeriesDataSchema, scatterDataSchema, simpleDataSchema (+18 more) + +### Community 23 - "Community 23" +Cohesion: 0.09 +Nodes (31): BaseModel, DictGuide, JsonPathGuide, ListGuide, all(), PptxAutoShapeBoxModel, PptxConnectorModel, PptxFillModel (+23 more) + +### Community 24 - "Community 24" +Cohesion: 0.16 +Nodes (33): get_custom_model_env(), get_google_model_env(), get_gpt_image_1_5_quality_env(), get_pexels_api_key_env(), get_web_grounding_env(), check_llm_and_image_provider_api_or_model_availability(), set_anthropic_api_key_env(), set_anthropic_model_env() (+25 more) + +### Community 25 - "Community 25" +Cohesion: 0.10 +Nodes (5): get_layout_detail(), SlideLayoutModel, MockAiohttpResponse, MockAiohttpSession, patch_presentation_api() + +### Community 26 - "Community 26" +Cohesion: 0.12 +Nodes (26): generate_presentation_outlines.py, generate_presentation_structure.py, check_if_api_request_is_valid(), edit_slide(), edit_slide_html(), get_edited_slide_content(), get_messages(), get_system_prompt() (+18 more) + +### Community 27 - "Community 27" +Cohesion: 0.14 +Nodes (3): pptx_presentation_creator.py, Helper method to create XML elements, download_file() + +### Community 29 - "Community 29" +Cohesion: 0.09 +Nodes (21): Providers(), Header(), PresentationPage(), docFile, file1, file2, imageFile, router (+13 more) + +### Community 30 - "Community 30" +Cohesion: 0.07 +Nodes (21): ChartItemSchema, ChartTypeEnum, DEFAULT_CHART_COLORS, DivergingDataPointSchema, MultiChartGridSlideData, MultiChartGridSlideLayoutProps, MultiSeriesDataPointSchema, ScatterDataPointSchema (+13 more) + +### Community 31 - "Community 31" +Cohesion: 0.11 +Nodes (14): ButtonState, UserConfig, initialState, userConfigSlice, LLMConfig, pull_ollama_model(), changeProvider(), checkIfSelectedOllamaModelIsPulled() (+6 more) + +### Community 32 - "Community 32" +Cohesion: 0.17 +Nodes (23): APIKeyWarning(), LoadingSpinner(), CustomTemplatePage(), EachSlide(), SlideActions(), useAPIKeyCheck(), useCustomLayout(), useDrawingCanvas() (+15 more) + +### Community 33 - "Community 33" +Cohesion: 0.11 +Nodes (24): API Spec Doc, Architecture Doc, Database Schema Doc, Infrastructure Doc, Next.js Server (servers/nextjs/), Presenton Project Entry Point, Requirements Doc, Runbook Doc (+16 more) + +### Community 34 - "Community 34" +Cohesion: 0.14 +Nodes (14): getHeader(), getHeaderForFormData(), IconSearch, ImageGenerate, ImageSearch, PreviousGeneratedImagesResponse, PresentationGenerationApi, ChartAssignmentResponse (+6 more) + +### Community 35 - "Community 35" +Cohesion: 0.16 +Nodes (19): CustomTemplateCard, LayoutPreview, TemplateSelection(), compileCustomLayout(), CompiledLayout, CustomTemplateDetailResponse, customTemplateFirstSlideCache, getCustomTemplateFirstSlidePreview() (+11 more) + +### Community 36 - "Community 36" +Cohesion: 0.10 +Nodes (22): LibreOffice (PPTX/PDF conversion), Requirements Doc (docs/project/requirements.md), docling (document extraction), fontTools (font metadata), FR-02: Presentation Generation from Documents, FR-03: Custom Template Generation from PPTX, FR-04: Presentation Editing, FR-05: Export (+14 more) + +### Community 37 - "Community 37" +Cohesion: 0.10 +Nodes (12): Test successful image generation with Pexels provider - Mocks the Pexels, Testing the image Generation Service, Test generate_image when no provider is selected - Mocks the environment, Test generate_image when provider function raises an error - Mocks the P, T Test REAL Pexels function with mocked HTTP call - Mocks the Pe, Test REAL Pixabay function with mocked HTTP call - Mocks the Pixabay API, Test initialization of ImageGenerationService with output directory - Ch, Testing the function selection when Pixabay is selected - Checks if (+4 more) + +### Community 38 - "Community 38" +Cohesion: 0.10 +Nodes (13): Schema, chartTypeEnum, Schema, Schema, Schema, Schema, CHART_COLORS, ChartDatumSchema (+5 more) + +### Community 39 - "Community 39" +Cohesion: 0.10 +Nodes (20): compilerOptions, allowJs, esModuleInterop, forceConsistentCasingInFileNames, incremental, isolatedModules, jsx, lib (+12 more) + +### Community 40 - "Community 40" +Cohesion: 0.14 +Nodes (17): ImageProvider Enum, LLMProvider Enum, webhook_subscriptions Table, Enum, LLMCallType, Tone, Verbosity, WebhookEvent (+9 more) + +### Community 41 - "Community 41" +Cohesion: 0.13 +Nodes (11): delete_presentation(), derive_presentation_from_existing_one(), edit_presentation_with_new_content(), get_all_presentations(), update_presentation(), PresentationPathAndEditPath, KeyValueSqlModel, SlideModel (+3 more) + +### Community 42 - "Community 42" +Cohesion: 0.16 +Nodes (6): GetCurrentDatetimeTool, LLMDynamicTool, LLMTool, Search the web for information., Get the current datetime., SearchWebTool + +### Community 43 - "Community 43" +Cohesion: 0.10 +Nodes (12): ImageAsset, imageasset Table, ImagePrompt, Generates an image based on the provided prompt. - If no image generatio, Testing the Image Generation API Endpoint, Mock images directory, Test successful image generation via API endpoint with stock provider -, Test successful image generation via API endpoint with AI provider - Moc (+4 more) + +### Community 44 - "Community 44" +Cohesion: 0.10 +Nodes (12): FileItem, LoadingState, TextContents, MarkdownRenderer(), MarkdownRendererProps, OutlineItem(), OutlineItemProps, APIChartResponse (+4 more) + +### Community 45 - "Community 45" +Cohesion: 0.15 +Nodes (19): Apple Touch Icon PNG, Cypress Component Index HTML, Cypress Testing Framework, Example File Upload Fixture, App Icon 1 SVG, App Icon 2 PNG, Loading Animation GIF, Logo PNG (+11 more) + +### Community 46 - "Community 46" +Cohesion: 0.18 +Nodes (13): FileUploadSection(), FontData, FontManager(), FontManagerProps, UploadedFont, PresentationListItem(), PresentationFilter, Card (+5 more) + +### Community 47 - "Community 47" +Cohesion: 0.16 +Nodes (16): next, deepCopy(), get_dict_at_path(), get_dict_paths_with_key(), has_more_than_n_keys(), process_old_and_new_slides_and_fetch_assets(), process_slide_add_placeholder_assets(), process_slide_and_fetch_assets() (+8 more) + +### Community 48 - "Community 48" +Cohesion: 0.14 +Nodes (9): image_generation_service.py, Base method for Google image generation models., Generate image using Gemini Flash (gemini-2.5-flash-image-preview)., Generate image using NanoBanana Pro (gemini-3-pro-image-preview)., Generate image using ComfyUI workflow API. User provides: - COM, Find the prompt node in the workflow and inject the prompt text. Looks f, Submit workflow to ComfyUI and return the prompt_id., Poll ComfyUI history endpoint until workflow completes. (+1 more) + +### Community 49 - "Community 49" +Cohesion: 0.12 +Nodes (16): aliases, components, hooks, lib, ui, utils, rsc, $schema (+8 more) + +### Community 50 - "Community 50" +Cohesion: 0.18 +Nodes (8): generate_presentation_handler(), prepare_presentation(), DocumentChunk, SlideOutlineModel, ScoreBasedChunker, find_slide_layout_index_by_regex(), get_presentation_title_from_outlines(), select_toc_or_list_slide_layout_index() + +### Community 51 - "Community 51" +Cohesion: 0.12 +Nodes (16): Arrow Arc Right Bold Icon, Arrow Fat Right Bold Icon, Arrow Icons, Arrow Line Down Left Bold Icon, Arrow Line Left Bold Icon, Arrow Line Up Bold Icon, Arrow U Left Down Bold Icon, Arrow U Right Up Bold Icon (+8 more) + +### Community 52 - "Community 52" +Cohesion: 0.18 +Nodes (16): export_utils.py, FastAPI Server (servers/fastapi/), generate_slide_content.py, Pipeline Stage: Asset Fetching, Pipeline Stage: Export, Pipeline Stage: Outline Generation, Pipeline Stage: Prompt/File Input, Pipeline Stage: Slide Content Generation (+8 more) + +### Community 53 - "Community 53" +Cohesion: 0.18 +Nodes (13): EditableElement, EditableLayoutWrapper(), IconsEditorProps, HtmlEditor(), HtmlEditorProps, SheetContent, SheetContentProps, SheetDescription (+5 more) + +### Community 54 - "Community 54" +Cohesion: 0.13 +Nodes (13): tableOfContentsSlideSchema, TableOfContentsLayout(), tableOfContentsSchema, TocItemSchema, Schema, SlideData, SlideLayoutProps, ToCItemSchema (+5 more) + +### Community 55 - "Community 55" +Cohesion: 0.14 +Nodes (12): ChartItemSchema, ChartTypeEnum, DEFAULT_CHART_COLORS, DivergingDataPointSchema, getGridLayout(), MultiChartGridSlideData, MultiChartGridSlideLayoutProps, MultiSeriesDataPointSchema (+4 more) + +### Community 56 - "Community 56" +Cohesion: 0.14 +Nodes (12): ChartItemSchema, ChartTypeEnum, DEFAULT_CHART_COLORS, DivergingDataPointSchema, getGridLayout(), MultiChartGridSlideData, MultiChartGridSlideLayoutProps, MultiSeriesDataPointSchema (+4 more) + +### Community 57 - "Community 57" +Cohesion: 0.17 +Nodes (7): ApiErrorResponse, ApiResponseHandler, TemplateService, CustomTemplateLayout, LayoutPayload, SaveStatus, useTemplateLayoutsAutoSave() + +### Community 58 - "Community 58" +Cohesion: 0.20 +Nodes (14): delete_font(), extract_font_name_from_file(), FontListResponse, FontUploadResponse, get_fonts_directory(), is_valid_font_file(), list_fonts(), Upload a font file and save it to the fonts directory. Args: fo (+6 more) + +### Community 59 - "Community 59" +Cohesion: 0.14 +Nodes (12): ChartItemSchema, ChartTypeEnum, DEFAULT_CHART_COLORS, DivergingDataPointSchema, getGridLayout(), MultiChartGridSlideData, MultiChartGridSlideLayoutProps, MultiSeriesDataPointSchema (+4 more) + +### Community 60 - "Community 60" +Cohesion: 0.28 +Nodes (11): get_disable_image_generation_env(), get_selected_image_provider(), is_comfyui_selected(), is_dalle3_selected(), is_gemini_flash_selected(), is_gpt_image_1_5_selected(), is_image_generation_disabled(), is_nanobanana_pro_selected() (+3 more) + +### Community 61 - "Community 61" +Cohesion: 0.13 +Nodes (10): IconSchema, ImageSchema, Schema, SlideData, SlideLayoutProps, FeatureSchema, IconSchema, Schema (+2 more) + +### Community 62 - "Community 62" +Cohesion: 0.16 +Nodes (12): BusinessModelData, businessModelSchema, CHART_COLORS, Props, CompanyTractionData, CompanyTractionSlideLayout(), computeStats(), defaultColors (+4 more) + +### Community 63 - "Community 63" +Cohesion: 0.15 +Nodes (11): CHART_COLOR_PALETTES, ChartItemSchema, ChartTypeEnum, DivergingDataPointSchema, getGridLayout(), MultiChartGridWithMetricsSlideData, MultiChartGridWithMetricsSlideLayout(), MultiSeriesDataPointSchema (+3 more) + +### Community 64 - "Community 64" +Cohesion: 0.36 +Nodes (8): AnthropicAssistantMessage, AnthropicToolCallMessage, AnthropicUserMessage, GoogleToolCallMessage, LLMMessage, OpenAIAssistantMessage, OpenAIToolCallMessage, AnthropicToolCall + +### Community 65 - "Community 65" +Cohesion: 0.19 +Nodes (9): ImagesApi, generate_image(), get_uploaded_images(), upload_image(), get_file_ext_or_none(), get_file_name_with_random_uuid(), get_original_file_name(), replace_file_name() (+1 more) + +### Community 66 - "Community 66" +Cohesion: 0.17 +Nodes (10): ChartItemSchema, ChartTypeEnum, DivergingDataPointSchema, getGridLayout(), MultiChartGridWithBulletsSlideData, MultiChartGridWithBulletsSlideLayout(), MultiSeriesDataPointSchema, ScatterDataPointSchema (+2 more) + +### Community 67 - "Community 67" +Cohesion: 0.19 +Nodes (9): buildChartData(), buildSimpleData(), ChartRenderer(), DEFAULT_CHART_COLORS, DivergingDataSchema, FormData, Schema, SeriesSchema (+1 more) + +### Community 68 - "Community 68" +Cohesion: 0.19 +Nodes (10): ChartItemSchema, ChartTypeEnum, DEFAULT_CHART_COLORS, defaultCharts, dynamicSlideLayout(), getGridLayout(), MiniChartRenderer(), Schema (+2 more) + +### Community 69 - "Community 69" +Cohesion: 0.19 +Nodes (10): ChartItemSchema, ChartTypeEnum, DEFAULT_CHART_COLORS, defaultCharts, dynamicSlideLayout(), getGridLayout(), MiniChartRenderer(), Schema (+2 more) + +### Community 70 - "Community 70" +Cohesion: 0.19 +Nodes (10): ChartItemSchema, ChartTypeEnum, DEFAULT_CHART_COLORS, defaultCharts, dynamicSlideLayout(), getGridLayout(), MiniChartRenderer(), Schema (+2 more) + +### Community 71 - "Community 71" +Cohesion: 0.26 +Nodes (13): api/middlewares.py, enums/llm_provider.py, LLMClient Abstraction, Anthropic Provider Backend, Custom OpenAI-Compatible Provider Backend, Google GenAI Provider Backend, Ollama Provider Backend, services/llm_client.py (+5 more) + +### Community 72 - "Community 72" +Cohesion: 0.22 +Nodes (13): Dockerfile (production), Docker Compose: production service, Anthropic Claude Provider, API Endpoint: /api/v1/ppt/presentation/generate, ComfyUI Self-hosted Image Provider, DALL-E 3 Image Provider, Google Gemini Provider, Ollama Integration (+5 more) + +### Community 73 - "Community 73" +Cohesion: 0.19 +Nodes (9): buildChartData(), buildSimpleData(), ChartRenderer(), DEFAULT_CHART_COLORS, DivergingDataSchema, Schema, SeriesSchema, SlideData (+1 more) + +### Community 74 - "Community 74" +Cohesion: 0.28 +Nodes (6): GoogleAssistantMessage, GoogleToolCall, LLMToolCall, OpenAIToolCall, iterator_to_async(), remove_titles_from_schema() + +### Community 75 - "Community 75" +Cohesion: 0.17 +Nodes (8): LayoutItem, LayoutItemProps, NewSlideV1Props, getCustomTemplateDetails(), getSchemaByTemplateId(), getSettingsByTemplateId(), getTemplatesByTemplateName(), GroupLayoutPreview() + +### Community 76 - "Community 76" +Cohesion: 0.17 +Nodes (12): devDependencies, cypress, esbuild, @types/babel__standalone, @types/node, @types/prismjs, @types/puppeteer, @types/react (+4 more) + +### Community 77 - "Community 77" +Cohesion: 0.23 +Nodes (11): args, __dirname, fastapiDir, __filename, main(), nextjsDir, setupNodeModules(), setupUserConfigFromEnv() (+3 more) + +### Community 78 - "Community 78" +Cohesion: 0.18 +Nodes (10): TeamSlideData, TeamSlideLayout(), TeamSlideLayoutProps, teamSlideSchema, ImageSchema, ItemSchema, Schema, SlideData (+2 more) + +### Community 79 - "Community 79" +Cohesion: 0.25 +Nodes (9): PdfSlideData, PdfSlidesResponse, process_pdf_slides(), Process a PDF file to extract slide screenshots. This endpoint: 1. Vali, stream_presentation(), get_exports_directory(), get_images_directory(), get_uploads_directory() (+1 more) + +### Community 80 - "Community 80" +Cohesion: 0.18 +Nodes (11): POST /presentation/generate, POST /webhook/subscribe, AsyncPresentationGenerationTaskModel, FastAPI Backend, WebhookService, async_presentation_generation_tasks Table, server.py (FastAPI entrypoint), ChromaDB Vector Store (+3 more) + +### Community 81 - "Community 81" +Cohesion: 0.29 +Nodes (7): get_model(), is_anthropic_selected(), is_custom_llm_selected(), is_google_selected(), is_ollama_selected(), is_openai_selected(), set_llm_provider_env() + +### Community 82 - "Community 82" +Cohesion: 0.18 +Nodes (7): ChartConfig, ChartContainer, ChartContext, ChartContextProps, ChartLegendContent, ChartTooltipContent, THEMES + +### Community 84 - "Community 84" +Cohesion: 0.20 +Nodes (10): Behance Logo Bold Icon, Cloud X Bold Icon, Download Bold Icon, FastAPI Server, Folders Bold Icon, Gradient Bold Icon, Magic Wand Bold Icon, Magnifying Glass Bold Icon (+2 more) + +### Community 85 - "Community 85" +Cohesion: 0.29 +Nodes (10): fastmcp.FastMCP.from_openapi(), ADR: MCP Server Generated from OpenAPI Snapshot, httpx.AsyncClient, servers/fastapi/mcp_server.py, Architecture Decision Records Index, Cypress E2E Tests, FastAPI Unit Tests (pytest), Next.js Lint Check (+2 more) + +### Community 86 - "Community 86" +Cohesion: 0.29 +Nodes (5): POST(), POST(), getIconFromFile(), getStaticFileUrl(), sanitizeFilename() + +### Community 87 - "Community 87" +Cohesion: 0.20 +Nodes (6): get_available_models(), get_available_models(), get_available_models(), list_available_anthropic_models(), list_available_google_models(), list_available_openai_compatible_models() + +### Community 88 - "Community 88" +Cohesion: 0.22 +Nodes (9): Calendar Dot Bold Icon, Calendar Heart Bold Icon, Calendar Icons, Calendar Slash Bold Icon, Chat Centered Slash Bold Icon, Device Mobile Slash Bold Icon, Lightning Slash Bold Icon, Push Pin Simple Slash Bold Icon (+1 more) + +### Community 89 - "Community 89" +Cohesion: 0.25 +Nodes (9): Arrow Circle Down Right Bold Icon, Arrow Clockwise Bold Icon, Arrow Elbow Left Bold Icon, Arrow Icon Category, Arrow U Right Down Bold Icon, Arrows Vertical Bold Icon, Caret Line Up Bold Icon, Flow Arrow Bold Icon (+1 more) + +### Community 90 - "Community 90" +Cohesion: 0.22 +Nodes (8): IntroSlideData, IntroSlideLayoutProps, introSlideSchema, ImageSchema, IntroSlideLayout(), Schema, SlideData, SlideLayoutProps + +### Community 91 - "Community 91" +Cohesion: 0.28 +Nodes (3): HTMLParser, InlineHTMLToRunsParser, parse_html_text_to_text_runs() + +### Community 92 - "Community 92" +Cohesion: 0.36 +Nodes (6): clip_image(), create_circle_image(), fit_image(), invert_image(), round_image_corners(), set_image_opacity() + +### Community 93 - "Community 93" +Cohesion: 0.25 +Nodes (6): ComponentProps, LayoutInfo, LoadingStateType, NavigationState, TemplateResponse, TemplateSetting + +### Community 94 - "Community 94" +Cohesion: 0.22 +Nodes (8): Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow + +### Community 95 - "Community 95" +Cohesion: 0.22 +Nodes (8): zod, name, overrides, brace-expansion, peerDependencies, private, type, version + +### Community 96 - "Community 96" +Cohesion: 0.25 +Nodes (9): POST /html-to-react/, GET /images/generate, POST /slide-to-html/, ImageGenerationService, LLMClient, External Services, Anthropic Python SDK, Google GenAI SDK (+1 more) + +### Community 97 - "Community 97" +Cohesion: 0.25 +Nodes (6): instrument_sans, inter, metadata, roboto, Toaster(), ToasterProps + +### Community 98 - "Community 98" +Cohesion: 0.25 +Nodes (3): CHART_COLORS, chartTypeEnum, Schema + +### Community 99 - "Community 99" +Cohesion: 0.25 +Nodes (6): CardSchema, IconSchema, ImageSchema, Schema, SlideData, SlideLayoutProps + +### Community 100 - "Community 100" +Cohesion: 0.25 +Nodes (6): CardSchema, IconSchema, ImageSchema, Schema, SlideData, SlideLayoutProps + +### Community 101 - "Community 101" +Cohesion: 0.39 +Nodes (8): get_database_url_and_connect_args(), MySQL aiomysql Driver, PostgreSQL asyncpg Driver, pyproject.toml, services/database.py, SQLite aiosqlite Driver, utils/db_utils.py, ADR: SQLite as Default Database + +### Community 102 - "Community 102" +Cohesion: 0.29 +Nodes (3): CHART_COLORS, chartTypeEnum, Schema + +### Community 103 - "Community 103" +Cohesion: 0.29 +Nodes (3): CHART_COLORS, chartTypeEnum, Schema + +### Community 104 - "Community 104" +Cohesion: 0.29 +Nodes (3): CHART_COLORS, chartTypeEnum, Schema + +### Community 105 - "Community 105" +Cohesion: 0.29 +Nodes (3): chartTypeEnum, COLORS, Schema + +### Community 106 - "Community 106" +Cohesion: 0.29 +Nodes (3): chartTypeEnum, COLORS, Schema + +### Community 107 - "Community 107" +Cohesion: 0.29 +Nodes (5): CHART_COLORS, ChartDatumSchema, Schema, SlideData, SlideLayoutProps + +### Community 108 - "Community 108" +Cohesion: 0.29 +Nodes (5): IconSchema, ImageSchema, Schema, SlideData, SlideLayoutProps + +### Community 109 - "Community 109" +Cohesion: 0.29 +Nodes (5): IconSchema, ImageSchema, Schema, SlideData, SlideLayoutProps + +### Community 110 - "Community 110" +Cohesion: 0.29 +Nodes (5): IconSchema, ImageSchema, Schema, SlideData, SlideLayoutProps + +### Community 111 - "Community 111" +Cohesion: 0.29 +Nodes (5): IconSchema, ImageSchema, LayoutProps, Schema, SlideData + +### Community 112 - "Community 112" +Cohesion: 0.29 +Nodes (5): IconSchema, ImageSchema, Schema, SlideData, SlideLayoutProps + +### Community 113 - "Community 113" +Cohesion: 0.29 +Nodes (5): IconSchema, ItemSchema, Schema, SlideData, SlideLayoutProps + +### Community 114 - "Community 114" +Cohesion: 0.38 +Nodes (6): createTemplateEntry(), getSchemaDefaults(), getSchemaJSON(), TemplateGroupSettings, TemplateLayoutsWithSettings, TemplateMetadata + +### Community 115 - "Community 115" +Cohesion: 0.43 +Nodes (7): Next.js Frontend, nginx Reverse Proxy, Ollama Local LLM, start.js Process Manager, Docker Container, nginx.conf, Next.js Framework + +### Community 116 - "Community 116" +Cohesion: 0.38 +Nodes (4): get_available_models(), pull_model(), OllamaModelStatus, list_pulled_ollama_models() + +### Community 117 - "Community 117" +Cohesion: 0.29 +Nodes (5): app_lifespan(), Lifespan context manager for FastAPI application. Initializes the applicatio, create_db_and_tables(), get_async_session(), get_container_db_async_session() + +### Community 118 - "Community 118" +Cohesion: 0.29 +Nodes (6): Test the slide-to-html endpoint with streaming API support., Test the endpoint with an invalid image path., Test the endpoint with missing XML data., test_slide_to_html_endpoint(), test_slide_to_html_invalid_path(), test_slide_to_html_missing_xml() + +### Community 119 - "Community 119" +Cohesion: 0.43 +Nodes (4): helpQuestions, AccordionContent, AccordionItem, AccordionTrigger + +### Community 121 - "Community 121" +Cohesion: 0.33 +Nodes (4): TiptapTextProps, extensions, TiptapTextReplacer(), TiptapTextReplacerProps + +### Community 122 - "Community 122" +Cohesion: 0.80 +Nodes (6): Canva Design Tool, README Assets Directory, Suraj Jha (Author), Outline Image, Prompting Image, Select Theme Image + +### Community 123 - "Community 123" +Cohesion: 0.33 +Nodes (6): Arrow Arc Left Bold Icon, Arrow Circle Up Bold Icon, Arrow Down Bold Icon, Arrow Fat Line Up Bold Icon, Arrow Fat Lines Right Bold Icon, Arrow Icon + +### Community 124 - "Community 124" +Cohesion: 0.33 +Nodes (6): Logo/Brand Icon, Dribbble Logo Bold Icon, Dropbox Logo Bold Icon, GitLab Logo Simple Bold Icon, Instagram Logo Bold Icon, Webhooks Logo Bold Icon + +### Community 125 - "Community 125" +Cohesion: 0.33 +Nodes (4): teamMemberSchema, TeamSlideData, TeamSlideLayoutProps, teamSlideSchema + +### Community 126 - "Community 126" +Cohesion: 0.33 +Nodes (4): PointSchema, Schema, SlideData, SlideLayoutProps + +### Community 127 - "Community 127" +Cohesion: 0.53 +Nodes (4): SSECompleteResponse, SSEErrorResponse, SSEResponse, SSEStatusResponse + +### Community 128 - "Community 128" +Cohesion: 0.47 +Nodes (5): MCP Endpoint (/mcp), MCP Server, mcp_server.py (MCP entrypoint), openai_spec.json (OpenAPI snapshot), fastmcp + +### Community 129 - "Community 129" +Cohesion: 0.33 +Nodes (5): create_sample_pptx(), Test that non-PPTX files are rejected., Create a minimal PPTX file for testing., Test the PPTX slides processing endpoint., test_invalid_file_type() + +### Community 130 - "Community 130" +Cohesion: 0.40 +Nodes (5): File Audio Bold Icon, File CPP Bold Icon, File INI Bold Icon, File MD Bold Icon, File Vue Bold Icon + +### Community 131 - "Community 131" +Cohesion: 0.40 +Nodes (5): File TXT Bold Icon, Fish Simple Bold Icon, Shield Checkered Bold Icon, Smiley X Eyes Bold Icon, SVG Vector Format + +### Community 132 - "Community 132" +Cohesion: 0.60 +Nodes (5): File Arrow Up Bold Icon, File Icon Category, File PNG Bold Icon, File Video Bold Icon, Upload Simple Bold Icon + +### Community 133 - "Community 133" +Cohesion: 0.40 +Nodes (5): Android Logo Bold Icon, Angular Logo Bold Icon, Matrix Logo Bold Icon, PayPal Logo Bold Icon, Stack Overflow Logo Bold Icon + +### Community 134 - "Community 134" +Cohesion: 0.70 +Nodes (5): File Type Icon, File Bold Icon, File C Sharp Bold Icon, File TSX Bold Icon, Files Bold Icon + +### Community 135 - "Community 135" +Cohesion: 0.40 +Nodes (3): MarketSizeSlideData, MarketSizeSlideProps, marketSizeSlideSchema + +### Community 138 - "Community 138" +Cohesion: 0.40 +Nodes (3): CHART_COLORS, chartTypeEnum, Schema + +### Community 140 - "Community 140" +Cohesion: 0.40 +Nodes (4): description, name, type, version + +### Community 141 - "Community 141" +Cohesion: 0.40 +Nodes (5): scripts, build, dev, lint, start + +### Community 142 - "Community 142" +Cohesion: 0.70 +Nodes (4): get_messages(), get_slide_content_from_type_and_outline(), get_system_prompt(), get_user_prompt() + +### Community 143 - "Community 143" +Cohesion: 0.50 +Nodes (4): Container SQLite Database (container.db), pull_ollama_model_background_task(), upsert_ollama_pull_status(), OllamaPullStatus + +### Community 144 - "Community 144" +Cohesion: 0.40 +Nodes (3): UserConfigEnvUpdateMiddleware, BaseHTTPMiddleware, get_can_change_keys_env() + +### Community 145 - "Community 145" +Cohesion: 0.83 +Nodes (4): Number Square Eight Bold Icon, Number Square Icons, Number Square Six Bold Icon, Number Square Zero Bold Icon + +### Community 146 - "Community 146" +Cohesion: 0.50 +Nodes (4): Article Bold Icon, Note Pencil Bold Icon, Pencil Line Bold Icon, Tote Bold Icon + +### Community 147 - "Community 147" +Cohesion: 0.83 +Nodes (4): Currency CNY Bold Icon, Currency EUR Bold Icon, Currency Icon Category, Currency KRW Bold Icon + +### Community 148 - "Community 148" +Cohesion: 0.50 +Nodes (4): Medium Logo Bold Icon, Social Logo Icon Category, SoundCloud Logo Bold Icon, Threads Logo Bold Icon + +### Community 149 - "Community 149" +Cohesion: 0.67 +Nodes (4): File HTML Bold Icon, File Plus Bold Icon, File XLS Bold Icon, File Zip Bold Icon + +### Community 150 - "Community 150" +Cohesion: 0.50 +Nodes (4): Hand Gesture Icon, Hand Fist Bold Icon, Hand Pointing Bold Icon, Hands Praying Bold Icon + +### Community 151 - "Community 151" +Cohesion: 0.50 +Nodes (3): default, description, ordered + +### Community 153 - "Community 153" +Cohesion: 0.50 +Nodes (3): default, description, ordered + +### Community 154 - "Community 154" +Cohesion: 0.50 +Nodes (3): default, description, ordered + +### Community 155 - "Community 155" +Cohesion: 0.50 +Nodes (3): default, description, ordered + +### Community 157 - "Community 157" +Cohesion: 0.50 +Nodes (3): default, description, ordered + +### Community 158 - "Community 158" +Cohesion: 0.50 +Nodes (3): default, description, ordered + +### Community 160 - "Community 160" +Cohesion: 0.50 +Nodes (3): default, description, ordered + +### Community 161 - "Community 161" +Cohesion: 0.50 +Nodes (3): default, description, ordered + +### Community 162 - "Community 162" +Cohesion: 0.50 +Nodes (4): openai_spec.json (OpenAPI snapshot), ADR: MCP from OpenAPI, Built-in MCP Server, FR-11: MCP Server + +### Community 164 - "Community 164" +Cohesion: 0.50 +Nodes (3): body, email, name + +### Community 166 - "Community 166" +Cohesion: 0.67 +Nodes (4): Chat Centered Bold Icon, Chat Dots Bold Icon, Chat Teardrop Slash Bold Icon, Chat Text Bold Icon + +### Community 167 - "Community 167" +Cohesion: 0.50 +Nodes (3): Main SQLite Database (fastapi.db), /app_data Persistent Volume, SQLModel ORM + +### Community 168 - "Community 168" +Cohesion: 1.00 +Nodes (3): Cloud Arrow Up Bold Icon, Cloud Bold Icon, Cloud Icons + +### Community 169 - "Community 169" +Cohesion: 1.00 +Nodes (3): Crown Cross Bold Icon, Crown Icons, Crown Simple Bold Icon + +### Community 170 - "Community 170" +Cohesion: 1.00 +Nodes (3): Lock Icons, Lock Key Bold Icon, Lock Open Bold Icon + +### Community 171 - "Community 171" +Cohesion: 1.00 +Nodes (3): Map Pin Icons, Map Pin Line Bold Icon, Map Pin Plus Bold Icon + +### Community 172 - "Community 172" +Cohesion: 1.00 +Nodes (3): Cell Signal Low Bold Icon, Cell Signal Medium Bold Icon, Signal Icons + +### Community 173 - "Community 173" +Cohesion: 0.67 +Nodes (3): Check Bold Icon, Check Square Bold Icon, Seal Check Bold Icon + +### Community 174 - "Community 174" +Cohesion: 0.67 +Nodes (3): Clock User Bold Icon, Folder Bold Icon, User Circle Gear Bold Icon + +### Community 175 - "Community 175" +Cohesion: 0.67 +Nodes (3): Intersection Bold Icon, Subtract Square Bold Icon, Unite Bold Icon + +### Community 176 - "Community 176" +Cohesion: 1.00 +Nodes (3): Sun/Light Concept, Sun Dim Bold Icon, Sun Horizon Bold Icon + +### Community 177 - "Community 177" +Cohesion: 0.67 +Nodes (3): Number Circle Five Bold Icon, Number Circle Six Bold Icon, Number Circle Two Bold Icon + +### Community 178 - "Community 178" +Cohesion: 1.00 +Nodes (3): Folder Icon Category, Folder Simple Plus Bold Icon, Ladder Simple Bold Icon + +### Community 179 - "Community 179" +Cohesion: 0.67 +Nodes (3): FastAPI Static Icons Directory, Placeholder Icon SVG, Shopping Cart Bold Icon + +### Community 180 - "Community 180" +Cohesion: 0.67 +Nodes (3): User Focus Bold Icon, User Plus Bold Icon, User Square Bold Icon + +### Community 181 - "Community 181" +Cohesion: 0.67 +Nodes (3): Cloud Arrow Down Bold Icon, Cloud Sun Bold Icon, Cloud Warning Bold Icon + +### Community 182 - "Community 182" +Cohesion: 0.67 +Nodes (3): Device Icon, Device Mobile Camera Bold Icon, Devices Bold Icon + +### Community 183 - "Community 183" +Cohesion: 0.67 +Nodes (3): Folder Icon, Folder Lock Bold Icon, Folder Plus Bold Icon + +### Community 184 - "Community 184" +Cohesion: 0.67 +Nodes (3): TableInfoSlideData, TableInfoSlideLayout(), tableInfoSlideSchema + +### Community 187 - "Community 187" +Cohesion: 0.67 +Nodes (3): Arrow Bend Right Down Bold Icon, Arrow Bend Up Right Bold Icon, Arrow Down Right Bold Icon + +### Community 188 - "Community 188" +Cohesion: 0.67 +Nodes (3): Chart Bar Bold Icon, Chart Scatter Bold Icon, Presentation Chart Bold Icon + +### Community 189 - "Community 189" +Cohesion: 0.67 +Nodes (3): Command Bold Icon, Keyboard Bold Icon, Linux Logo Bold Icon + +### Community 190 - "Community 190" +Cohesion: 0.67 +Nodes (3): Currency Circle Dollar Bold Icon, Currency INR Bold Icon, Money Wavy Bold Icon + +### Community 191 - "Community 191" +Cohesion: 0.67 +Nodes (3): File Magnifying Glass Bold Icon, File PDF Bold Icon, File TypeScript Bold Icon + +### Community 192 - "Community 192" +Cohesion: 1.00 +Nodes (3): LinkedIn Logo Bold Icon, Snapchat Logo Bold Icon, Twitter Logo Bold Icon + +### Community 193 - "Community 193" +Cohesion: 0.67 +Nodes (3): Headset Bold Icon, Microphone Bold Icon, Speaker Simple Slash Bold Icon + +### Community 194 - "Community 194" +Cohesion: 1.00 +Nodes (3): Smiley Angry Bold Icon, Smiley Meh Bold Icon, Smiley Nervous Bold Icon + +### Community 195 - "Community 195" +Cohesion: 0.67 +Nodes (3): User Circle Check Bold Icon, User Minus Bold Icon, User Sound Bold Icon + +### Community 196 - "Community 196" +Cohesion: 0.67 +Nodes (3): Head Circuit Bold Icon, Person Bold Icon, User Gear Bold Icon + +### Community 197 - "Community 197" +Cohesion: 1.00 +Nodes (3): UserConfigEnvUpdateMiddleware, Environment Variables Configuration, userConfig.json + +## Ambiguous Edges - Review These +- `FastAPI Backend` → `ChromaDB Vector Store` [AMBIGUOUS] + docs/project/tech_stack.md · relation: references + +## Knowledge Gaps +- **1580 isolated node(s):** `__filename`, `__dirname`, `fastapiDir`, `nextjsDir`, `args` (+1575 more) + These have ≤1 connection - possible missing edges or undocumented components. +- **144 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes. + +## Suggested Questions +_Questions this graph is uniquely positioned to answer:_ + +- **What is the exact relationship between `FastAPI Backend` and `ChromaDB Vector Store`?** + _Edge tagged AMBIGUOUS (relation: references) - confidence is low._ +- **Why does `PresentationModel` connect `Community 13` to `Community 34`, `Community 41`, `Community 80`, `Community 50`, `Community 25`?** + _High betweenness centrality (0.069) - this node is a cross-community bridge._ +- **Why does `V1ContentRender()` connect `Community 13` to `Community 2`, `Community 35`, `Community 34`, `Community 53`, `Community 21`, `Community 120`, `Community 121`?** + _High betweenness centrality (0.060) - this node is a cross-community bridge._ +- **Why does `PresentationGenerationApi` connect `Community 34` to `Community 65`, `Community 75`, `Community 44`, `Community 13`, `Community 16`, `Community 17`, `Community 21`, `Community 53`, `Community 57`, `Community 26`, `Community 29`?** + _High betweenness centrality (0.049) - this node is a cross-community bridge._ +- **Are the 407 inferred relationships involving `Bold Icon Set` (e.g. with `Battery Vertical Low Bold Icon` and `Bookmark Simple Bold Icon`) actually correct?** + _`Bold Icon Set` has 407 INFERRED edges - model-reasoned connections that need verification._ +- **Are the 367 inferred relationships involving `Phosphor Icons Bold Style` (e.g. with `Buildings Bold Icon` and `Clock Counter Clockwise Bold Icon`) actually correct?** + _`Phosphor Icons Bold Style` has 367 INFERRED edges - model-reasoned connections that need verification._ +- **Are the 137 inferred relationships involving `Phosphor Bold Icon Set` (e.g. with `Coat Hanger Bold Icon` and `Bag Simple Bold Icon`) actually correct?** + _`Phosphor Bold Icon Set` has 137 INFERRED edges - model-reasoned connections that need verification._ \ No newline at end of file diff --git a/wiki/architecture/sandbox-notebookllamalm-nextjs-structure.md b/wiki/architecture/sandbox-notebookllamalm-nextjs-structure.md new file mode 100644 index 0000000..9886e2f --- /dev/null +++ b/wiki/architecture/sandbox-notebookllamalm-nextjs-structure.md @@ -0,0 +1,276 @@ +--- +tags: [architecture, graphify, sandbox-notebookllamalm-nextjs] +updated: 2026-05-18 +--- + +# Graph Report - /Users/ai_leed/Documents/Projects/Oliver/sandbox-notebookllamalm-nextjs (2026-05-18) + +## Corpus Check +- cluster-only mode — file stats not available + +## Summary +- 739 nodes · 1283 edges · 55 communities (49 shown, 6 thin omitted) +- Extraction: 75% EXTRACTED · 25% INFERRED · 0% AMBIGUOUS · INFERRED: 318 edges (avg confidence: 0.73) +- Token cost: 0 input · 0 output + +## Graph Freshness +- Built from commit: `54eddd70` +- Run `git rev-parse HEAD` and compare to check if the graph is stale. +- Run `graphify update .` after code changes (no API cost). + +## Community Hubs (Navigation) +- [[_COMMUNITY_Community 0|Community 0]] +- [[_COMMUNITY_Community 1|Community 1]] +- [[_COMMUNITY_Community 2|Community 2]] +- [[_COMMUNITY_Community 3|Community 3]] +- [[_COMMUNITY_Community 4|Community 4]] +- [[_COMMUNITY_Community 5|Community 5]] +- [[_COMMUNITY_Community 6|Community 6]] +- [[_COMMUNITY_Community 7|Community 7]] +- [[_COMMUNITY_Community 8|Community 8]] +- [[_COMMUNITY_Community 9|Community 9]] +- [[_COMMUNITY_Community 10|Community 10]] +- [[_COMMUNITY_Community 11|Community 11]] +- [[_COMMUNITY_Community 12|Community 12]] +- [[_COMMUNITY_Community 13|Community 13]] +- [[_COMMUNITY_Community 14|Community 14]] +- [[_COMMUNITY_Community 15|Community 15]] +- [[_COMMUNITY_Community 16|Community 16]] +- [[_COMMUNITY_Community 17|Community 17]] +- [[_COMMUNITY_Community 18|Community 18]] +- [[_COMMUNITY_Community 19|Community 19]] +- [[_COMMUNITY_Community 20|Community 20]] +- [[_COMMUNITY_Community 21|Community 21]] +- [[_COMMUNITY_Community 22|Community 22]] +- [[_COMMUNITY_Community 23|Community 23]] +- [[_COMMUNITY_Community 24|Community 24]] +- [[_COMMUNITY_Community 25|Community 25]] +- [[_COMMUNITY_Community 26|Community 26]] +- [[_COMMUNITY_Community 27|Community 27]] +- [[_COMMUNITY_Community 28|Community 28]] +- [[_COMMUNITY_Community 29|Community 29]] +- [[_COMMUNITY_Community 30|Community 30]] +- [[_COMMUNITY_Community 31|Community 31]] +- [[_COMMUNITY_Community 32|Community 32]] +- [[_COMMUNITY_Community 33|Community 33]] +- [[_COMMUNITY_Community 34|Community 34]] +- [[_COMMUNITY_Community 35|Community 35]] +- [[_COMMUNITY_Community 36|Community 36]] +- [[_COMMUNITY_Community 37|Community 37]] +- [[_COMMUNITY_Community 38|Community 38]] +- [[_COMMUNITY_Community 39|Community 39]] +- [[_COMMUNITY_Community 41|Community 41]] +- [[_COMMUNITY_Community 42|Community 42]] +- [[_COMMUNITY_Community 51|Community 51]] +- [[_COMMUNITY_Community 52|Community 52]] +- [[_COMMUNITY_Community 53|Community 53]] +- [[_COMMUNITY_Community 54|Community 54]] + +## God Nodes (most connected - your core abstractions) +1. `get_db_session()` - 61 edges +2. `get_notebook_by_id()` - 27 edges +3. `CLAUDE.md Developer Guide` - 25 edges +4. `Sandbox-NotebookLM Project` - 24 edges +5. `serialize_datetime()` - 18 edges +6. `AGENTS.md Project Entry Point` - 17 edges +7. `compilerOptions` - 16 edges +8. `User` - 16 edges +9. `Execute document processing task in background` - 15 edges +10. `_generate()` - 15 edges + +## Surprising Connections (you probably didn't know these) +- `Notebook Sharing & Permissions` --conceptually_related_to--> `Notebooks Routes (notebooks.py)` [INFERRED] + README.md → backend/src/api/routes/notebooks.py +- `LLM Factory (llm_factory.py)` --calls--> `OpenAI (GPT Models)` [EXTRACTED] + backend/src/notebookllama/llm_factory.py → README.md +- `LLM Factory (llm_factory.py)` --calls--> `Anthropic (Claude Models)` [EXTRACTED] + backend/src/notebookllama/llm_factory.py → README.md +- `LLM Factory (llm_factory.py)` --calls--> `Google (Gemini Models)` [EXTRACTED] + backend/src/notebookllama/llm_factory.py → README.md +- `WebSocket Chat System` --conceptually_related_to--> `Chat Routes (chat.py)` [INFERRED] + README.md → backend/src/api/routes/chat.py + +## Communities (55 total, 6 thin omitted) + +### Community 0 - "Community 0" +Cohesion: 0.07 +Nodes (52): AGENTS.md Project Entry Point, Admin Routes (admin.py), Podcast Audio Generation (audio.py), Auth Routes (auth.py), Background Tasks (background_tasks.py), Chat Routes (chat.py), Database Models (database.py), Documents Routes (documents.py) (+44 more) + +### Community 1 - "Community 1" +Cohesion: 0.05 +Nodes (38): dependencies, axios, @azure/msal-browser, date-fns, lucide-react, next, react, react-dom (+30 more) + +### Community 2 - "Community 2" +Cohesion: 0.11 +Nodes (42): Base, ChatMessage, ChatSession, Document, DocumentShare, DocumentSummary, drop_all_tables(), get_db() (+34 more) + +### Community 3 - "Community 3" +Cohesion: 0.10 +Nodes (42): set_user_ctx(), get_notebook_by_id(), create_mindmap_svg(), create_pdf_bytes(), create_pptx_bytes(), Generate PPTX file bytes styled with OLIVER brand guidelines., Generate PDF bytes from ReportOutput dict using WeasyPrint., Generate SVG bytes from MindMapOutput dict. (+34 more) + +### Community 4 - "Community 4" +Cohesion: 0.06 +Nodes (38): Get the latest podcast generation task for a notebook, Datetime utilities for consistent timezone handling across the application. All, Get current UTC time as timezone-aware datetime. Use this instead of datetim, Serialize datetime to ISO format string with UTC marker. Args: dt:, serialize_datetime(), utc_now(), check_admin(), check_health() (+30 more) + +### Community 5 - "Community 5" +Cohesion: 0.06 +Nodes (38): create_access_token(), decode_token(), get_current_user(), get_optional_user(), JWT Authentication Middleware for FastAPI Provides token generation and validati, FastAPI dependency for optional authentication (returns None if not authenticate, Create a JWT access token for a user Args: user_id: The user's data, Decode and validate a JWT token Args: token: JWT token string (+30 more) + +### Community 6 - "Community 6" +Cohesion: 0.13 +Nodes (24): api, token, AdminStats, AuthResponse, ChatMessage, ChatSession, Document, DocumentSummary (+16 more) + +### Community 7 - "Community 7" +Cohesion: 0.10 +Nodes (25): get_db_session(), Get database session directly - caller must close with db.close() Use this, can_access_document(), create_chat_session(), create_document(), get_chat_history(), get_document_by_id(), get_document_shares() (+17 more) + +### Community 8 - "Community 8" +Cohesion: 0.10 +Nodes (26): cleanup_old_stashed_files(), execute_podcast_task(), get_llamaextract_agent_with_retry(), get_llamaparse_with_retry(), get_notebook_processing_tasks(), get_task_status(), get_user_tasks(), Simple background task system using database as queue No external dependencies l (+18 more) + +### Community 9 - "Community 9" +Cohesion: 0.16 +Nodes (19): BaseModel, Notebook, BarChartItem, DataTableOutput, DataTableRow, DiagramData, Flashcard, FlashcardsOutput (+11 more) + +### Community 10 - "Community 10" +Cohesion: 0.10 +Nodes (20): add_document_to_notebook(), create_notebook(), get_shared_chats(), get_user_notebooks(), get_user_private_chats(), Notebook management helper functions for multi-document notebooks, Create a new notebook (collection of documents) with dedicated pipeline Rai, Add a document to a notebook (+12 more) + +### Community 11 - "Community 11" +Cohesion: 0.10 +Nodes (19): compilerOptions, allowJs, esModuleInterop, incremental, isolatedModules, jsx, lib, module (+11 more) + +### Community 12 - "Community 12" +Cohesion: 0.11 +Nodes (17): add_document_to_pipeline(), cleanup_all_orphaned_pipelines(), create_notebook_pipeline(), delete_notebook_documents_from_pipeline(), delete_pipeline_and_files(), get_or_create_shared_pipeline(), get_shared_pipeline_id(), Per-notebook pipeline management for data isolation Supports two modes: 1. Lega (+9 more) + +### Community 13 - "Community 13" +Cohesion: 0.25 +Nodes (11): MicrosoftCallbackPage(), authAPI, loginRequest, msalConfig, msalInstance, LoginPage(), NotebooksPage(), SignupPage() (+3 more) + +### Community 15 - "Community 15" +Cohesion: 0.17 +Nodes (15): extract_llama_tokens(), get_user_ctx(), model_id_for(), Map llm_factory model_type alias to the actual model ID string., Extract (input_tokens, output_tokens) from a LlamaIndex ChatResponse., generate_notebook_synthesis(), generate_podcast_outline(), generate_podcast_script_from_outline() (+7 more) + +### Community 16 - "Community 16" +Cohesion: 0.15 +Nodes (14): get_model_display_name(), Get user-friendly model name, check_pipeline_ready_with_test(), get_notebook_query_engine(), is_shared_pipeline(), query_notebook_pipeline(), Check if pipeline_id is the shared pipeline (with fallback lookup). This as, Check if pipeline is actually ready by doing ONE simple test query Only call (+6 more) + +### Community 17 - "Community 17" +Cohesion: 0.18 +Nodes (7): _conversation_audio(), ConversationTurn, MultiTurnConversation, PodcastGenerator, get_voice_name(), Voice configuration for ElevenLabs TTS podcast generation, Get the friendly name for a voice ID, or 'Unknown' if not found. + +### Community 18 - "Community 18" +Cohesion: 0.15 +Nodes (13): get_latest_document_summary(), Get all summaries for a document, Get the latest summary for a document, get_notebook_documents(), Get all documents in a notebook, Get all notebooks containing a document, Get count of documents in a notebook, get_document_summary() (+5 more) + +### Community 19 - "Community 19" +Cohesion: 0.17 +Nodes (11): _format_params(), _format_result(), log_api_call(), log_api_info(), log_api_retry(), API Call Logging Utilities Provides visibility into external API calls (LlamaClo, Format result for logging (extract key info), Simple info log for API-related messages. Usage: log_api_info("LLAM (+3 more) + +### Community 20 - "Community 20" +Cohesion: 0.20 +Nodes (9): Edge, get_mind_map(), MindMap, MindMapCreationFailedWarning, Node, process_file(), query_index(), A warning returned if the mind map creation failed (+1 more) + +### Community 21 - "Community 21" +Cohesion: 0.17 +Nodes (11): delete_chat_session(), Toggle a chat session between private and shared, Delete a chat session (only owner can delete), toggle_chat_sharing(), delete_session(), Chat session management routes, Toggle chat session sharing, Rename a chat session (+3 more) + +### Community 22 - "Community 22" +Cohesion: 0.22 +Nodes (9): montserrat, Navigation(), ProtectedRoute(), Theme, ThemeContext, ThemeContextValue, ThemeProvider(), useTheme() (+1 more) + +### Community 23 - "Community 23" +Cohesion: 0.20 +Nodes (9): get_llm_by_type(), get_model_emoji(), get_model_info(), get_structured_llm(), LLM Factory - Create OpenAI or Gemini LLMs based on user choice Supports per-not, Get structured LLM for pydantic output. Args: model_type: model ali, Get emoji for model type, Get model information including costs (+1 more) + +### Community 24 - "Community 24" +Cohesion: 0.22 +Nodes (9): analyze_video_with_gemini(), estimate_processing_time(), get_video_duration(), Gemini 2.5 Pro Video Processing Handles video upload, analysis, and transcript e, Get video duration in seconds using ffprobe (preferred) or moviepy (fallback)., Estimate processing time for video. Args: duration_seconds: Video d, Validate video meets requirements. Args: file_path: Path to video f, Analyze video using Gemini 2.5 Pro's multimodal capabilities. Uses the new g (+1 more) + +### Community 25 - "Community 25" +Cohesion: 0.27 +Nodes (8): Event, extract_file_data(), FileInputEvent, generate_mind_map(), MindMapCreationEvent, NotebookOutputEvent, StartEvent, StopEvent + +### Community 26 - "Community 26" +Cohesion: 0.22 +Nodes (3): AdminPage(), FEATURES, adminAPI + +### Community 27 - "Community 27" +Cohesion: 0.39 +Nodes (6): check_health(), error(), info(), on_error(), print_rollback(), warn() + +### Community 28 - "Community 28" +Cohesion: 0.31 +Nodes (8): _enabled(), preflight(), Lightweight AI Cost Tracker integration — fail-open, fire-and-forget., Record AI usage after a call. Fire-and-forget — errors never propagate., Enrich user record with profile data. Call once on login. Sync, non-fatal., Check budget before an AI call. Always returns True on error (fail-open)., record(), upsert_user() + +### Community 29 - "Community 29" +Cohesion: 0.36 +Nodes (9): build_context(), _generate(), generate_datatable(), generate_flashcards(), generate_infographic(), generate_quiz(), generate_report(), generate_slides() (+1 more) + +### Community 30 - "Community 30" +Cohesion: 0.25 +Nodes (4): DowngradePollingFilter, FastAPI application for Sandbox-NotebookLM Wraps existing Python backend with RE, # NOTE: Error suppression removed to allow proper debugging, Downgrade repetitive polling endpoint logs to DEBUG level + +### Community 31 - "Community 31" +Cohesion: 0.46 +Nodes (5): check_alive(), confirm(), info(), remove_dir(), warn() + +### Community 32 - "Community 32" +Cohesion: 0.32 +Nodes (7): apply_custom_styles(), get_custom_css(), Global CSS styles for NotebookLlaMa Apply consistent typography and styling acro, Display the logo at the top of the page, Apply custom CSS to the current page, Return custom CSS for the application, show_logo() + +### Community 33 - "Community 33" +Cohesion: 0.25 +Nodes (8): add_chat_message(), Add a message to a chat session, create_notebook_chat_session(), Create a chat session for a notebook, chat_websocket(), WebSocket endpoint for real-time chat with notebook, create_chat_session_endpoint(), Create a new chat session with deduplication + +### Community 34 - "Community 34" +Cohesion: 0.29 +Nodes (3): Message, chatAPI, notebookAPI + +### Community 35 - "Community 35" +Cohesion: 0.33 +Nodes (5): NotebookLMWorkflow, process_document_for_notebook(), Process a single document and add to notebook - DIRECT API CALLS (no MCP), sync_process_document(), Workflow + +### Community 36 - "Community 36" +Cohesion: 0.40 +Nodes (5): extract_with_llm(), parse_llm_extraction_response(), LLM-based document extraction fallback for file types not supported by LlamaExtr, Extract structured information from document text using LLM. This is a fallb, Parse the LLM response into structured format matching LlamaExtract output. + +### Community 37 - "Community 37" +Cohesion: 0.33 +Nodes (5): LoginRequest, MicrosoftLoginRequest, Search users by email or username for sharing purposes. - Requires minimum, search_users(), SignupRequest + +### Community 38 - "Community 38" +Cohesion: 0.33 +Nodes (6): create_task(), Create a background task, Start podcast generation in background and return task ID NOTE: Fully paral, Start document processing in background and return task ID, start_document_processing_background(), Start podcast generation in background + +### Community 39 - "Community 39" +Cohesion: 0.30 +Nodes (5): extract_slides_json_from_pptx(), Parse a PPTX binary and return a StudioSlides-compatible dict for preview., Regenerate a single slide based on a custom prompt., regenerate_single_slide(), SlideContent + +### Community 41 - "Community 41" +Cohesion: 0.50 +Nodes (4): delete_notebook(), Delete a notebook and cleanup LlamaCloud resources For shared pipelines: On, delete_notebook_endpoint(), Delete a notebook and all its data + +## Knowledge Gaps +- **70 isolated node(s):** `config`, `name`, `version`, `private`, `dev` (+65 more) + These have ≤1 connection - possible missing edges or undocumented components. +- **6 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes. + +## Suggested Questions +_Questions this graph is uniquely positioned to answer:_ + +- **Why does `get_db_session()` connect `Community 7` to `Community 33`, `Community 2`, `Community 3`, `Community 4`, `Community 5`, `Community 38`, `Community 37`, `Community 8`, `Community 41`, `Community 10`, `Community 18`, `Community 21`?** + _High betweenness centrality (0.185) - this node is a cross-community bridge._ +- **Why does `analyze_pptx_template()` connect `Community 1` to `Community 9`?** + _High betweenness centrality (0.074) - this node is a cross-community bridge._ +- **Are the 59 inferred relationships involving `get_db_session()` (e.g. with `authenticate_user()` and `create_user()`) actually correct?** + _`get_db_session()` has 59 INFERRED edges - model-reasoned connections that need verification._ +- **Are the 26 inferred relationships involving `get_notebook_by_id()` (e.g. with `execute_podcast_task()` and `Execute document processing task in background`) actually correct?** + _`get_notebook_by_id()` has 26 INFERRED edges - model-reasoned connections that need verification._ +- **What connects `config`, `name`, `version` to the rest of the system?** + _260 weakly-connected nodes found - possible documentation gaps or missing edges._ +- **Should `Community 0` be split into smaller, more focused modules?** + _Cohesion score 0.07457627118644068 - nodes in this community are weakly interconnected._ +- **Should `Community 1` be split into smaller, more focused modules?** + _Cohesion score 0.04591836734693878 - nodes in this community are weakly interconnected._ \ No newline at end of file diff --git a/wiki/architecture/semblance-structure.md b/wiki/architecture/semblance-structure.md new file mode 100644 index 0000000..0e126db --- /dev/null +++ b/wiki/architecture/semblance-structure.md @@ -0,0 +1,693 @@ +--- +tags: [architecture, graphify, semblance] +updated: 2026-05-18 +--- + +# Graph Report - /Users/ai_leed/Documents/Projects/Oliver/semblance (2026-05-18) + +## Corpus Check +- cluster-only mode — file stats not available + +## Summary +- 2218 nodes · 4047 edges · 252 communities (104 shown, 148 thin omitted) +- Extraction: 88% EXTRACTED · 12% INFERRED · 0% AMBIGUOUS · INFERRED: 500 edges (avg confidence: 0.73) +- Token cost: 0 input · 0 output + +## Graph Freshness +- Built from commit: `54eddd70` +- Run `git rev-parse HEAD` and compare to check if the graph is stale. +- Run `graphify update .` after code changes (no API cost). + +## Community Hubs (Navigation) +- [[_COMMUNITY_Community 0|Community 0]] +- [[_COMMUNITY_Community 1|Community 1]] +- [[_COMMUNITY_Community 2|Community 2]] +- [[_COMMUNITY_Community 3|Community 3]] +- [[_COMMUNITY_Community 4|Community 4]] +- [[_COMMUNITY_Community 5|Community 5]] +- [[_COMMUNITY_Community 6|Community 6]] +- [[_COMMUNITY_Community 7|Community 7]] +- [[_COMMUNITY_Community 8|Community 8]] +- [[_COMMUNITY_Community 9|Community 9]] +- [[_COMMUNITY_Community 10|Community 10]] +- [[_COMMUNITY_Community 11|Community 11]] +- [[_COMMUNITY_Community 12|Community 12]] +- [[_COMMUNITY_Community 13|Community 13]] +- [[_COMMUNITY_Community 14|Community 14]] +- [[_COMMUNITY_Community 15|Community 15]] +- [[_COMMUNITY_Community 16|Community 16]] +- [[_COMMUNITY_Community 17|Community 17]] +- [[_COMMUNITY_Community 18|Community 18]] +- [[_COMMUNITY_Community 19|Community 19]] +- [[_COMMUNITY_Community 20|Community 20]] +- [[_COMMUNITY_Community 21|Community 21]] +- [[_COMMUNITY_Community 22|Community 22]] +- [[_COMMUNITY_Community 23|Community 23]] +- [[_COMMUNITY_Community 24|Community 24]] +- [[_COMMUNITY_Community 25|Community 25]] +- [[_COMMUNITY_Community 26|Community 26]] +- [[_COMMUNITY_Community 27|Community 27]] +- [[_COMMUNITY_Community 28|Community 28]] +- [[_COMMUNITY_Community 29|Community 29]] +- [[_COMMUNITY_Community 30|Community 30]] +- [[_COMMUNITY_Community 31|Community 31]] +- [[_COMMUNITY_Community 32|Community 32]] +- [[_COMMUNITY_Community 33|Community 33]] +- [[_COMMUNITY_Community 34|Community 34]] +- [[_COMMUNITY_Community 35|Community 35]] +- [[_COMMUNITY_Community 36|Community 36]] +- [[_COMMUNITY_Community 37|Community 37]] +- [[_COMMUNITY_Community 38|Community 38]] +- [[_COMMUNITY_Community 39|Community 39]] +- [[_COMMUNITY_Community 40|Community 40]] +- [[_COMMUNITY_Community 41|Community 41]] +- [[_COMMUNITY_Community 42|Community 42]] +- [[_COMMUNITY_Community 43|Community 43]] +- [[_COMMUNITY_Community 44|Community 44]] +- [[_COMMUNITY_Community 45|Community 45]] +- [[_COMMUNITY_Community 46|Community 46]] +- [[_COMMUNITY_Community 47|Community 47]] +- [[_COMMUNITY_Community 48|Community 48]] +- [[_COMMUNITY_Community 49|Community 49]] +- [[_COMMUNITY_Community 50|Community 50]] +- [[_COMMUNITY_Community 51|Community 51]] +- [[_COMMUNITY_Community 52|Community 52]] +- [[_COMMUNITY_Community 53|Community 53]] +- [[_COMMUNITY_Community 54|Community 54]] +- [[_COMMUNITY_Community 55|Community 55]] +- [[_COMMUNITY_Community 56|Community 56]] +- [[_COMMUNITY_Community 57|Community 57]] +- [[_COMMUNITY_Community 58|Community 58]] +- [[_COMMUNITY_Community 59|Community 59]] +- [[_COMMUNITY_Community 60|Community 60]] +- [[_COMMUNITY_Community 61|Community 61]] +- [[_COMMUNITY_Community 62|Community 62]] +- [[_COMMUNITY_Community 63|Community 63]] +- [[_COMMUNITY_Community 64|Community 64]] +- [[_COMMUNITY_Community 65|Community 65]] +- [[_COMMUNITY_Community 66|Community 66]] +- [[_COMMUNITY_Community 67|Community 67]] +- [[_COMMUNITY_Community 68|Community 68]] +- [[_COMMUNITY_Community 69|Community 69]] +- [[_COMMUNITY_Community 70|Community 70]] +- [[_COMMUNITY_Community 71|Community 71]] +- [[_COMMUNITY_Community 72|Community 72]] +- [[_COMMUNITY_Community 73|Community 73]] +- [[_COMMUNITY_Community 74|Community 74]] +- [[_COMMUNITY_Community 75|Community 75]] +- [[_COMMUNITY_Community 76|Community 76]] +- [[_COMMUNITY_Community 77|Community 77]] +- [[_COMMUNITY_Community 78|Community 78]] +- [[_COMMUNITY_Community 79|Community 79]] +- [[_COMMUNITY_Community 80|Community 80]] +- [[_COMMUNITY_Community 81|Community 81]] +- [[_COMMUNITY_Community 82|Community 82]] +- [[_COMMUNITY_Community 83|Community 83]] +- [[_COMMUNITY_Community 84|Community 84]] +- [[_COMMUNITY_Community 85|Community 85]] +- [[_COMMUNITY_Community 86|Community 86]] +- [[_COMMUNITY_Community 87|Community 87]] +- [[_COMMUNITY_Community 88|Community 88]] +- [[_COMMUNITY_Community 89|Community 89]] +- [[_COMMUNITY_Community 90|Community 90]] +- [[_COMMUNITY_Community 91|Community 91]] +- [[_COMMUNITY_Community 92|Community 92]] +- [[_COMMUNITY_Community 93|Community 93]] +- [[_COMMUNITY_Community 94|Community 94]] +- [[_COMMUNITY_Community 95|Community 95]] +- [[_COMMUNITY_Community 96|Community 96]] +- [[_COMMUNITY_Community 97|Community 97]] +- [[_COMMUNITY_Community 98|Community 98]] +- [[_COMMUNITY_Community 99|Community 99]] +- [[_COMMUNITY_Community 100|Community 100]] +- [[_COMMUNITY_Community 101|Community 101]] +- [[_COMMUNITY_Community 102|Community 102]] +- [[_COMMUNITY_Community 103|Community 103]] +- [[_COMMUNITY_Community 104|Community 104]] +- [[_COMMUNITY_Community 105|Community 105]] +- [[_COMMUNITY_Community 106|Community 106]] +- [[_COMMUNITY_Community 107|Community 107]] +- [[_COMMUNITY_Community 108|Community 108]] +- [[_COMMUNITY_Community 109|Community 109]] +- [[_COMMUNITY_Community 111|Community 111]] +- [[_COMMUNITY_Community 112|Community 112]] +- [[_COMMUNITY_Community 118|Community 118]] +- [[_COMMUNITY_Community 119|Community 119]] +- [[_COMMUNITY_Community 120|Community 120]] +- [[_COMMUNITY_Community 121|Community 121]] +- [[_COMMUNITY_Community 122|Community 122]] +- [[_COMMUNITY_Community 123|Community 123]] +- [[_COMMUNITY_Community 124|Community 124]] +- [[_COMMUNITY_Community 125|Community 125]] +- [[_COMMUNITY_Community 126|Community 126]] +- [[_COMMUNITY_Community 127|Community 127]] +- [[_COMMUNITY_Community 128|Community 128]] +- [[_COMMUNITY_Community 129|Community 129]] +- [[_COMMUNITY_Community 130|Community 130]] +- [[_COMMUNITY_Community 131|Community 131]] +- [[_COMMUNITY_Community 132|Community 132]] +- [[_COMMUNITY_Community 133|Community 133]] +- [[_COMMUNITY_Community 134|Community 134]] +- [[_COMMUNITY_Community 135|Community 135]] +- [[_COMMUNITY_Community 136|Community 136]] +- [[_COMMUNITY_Community 137|Community 137]] +- [[_COMMUNITY_Community 138|Community 138]] +- [[_COMMUNITY_Community 139|Community 139]] +- [[_COMMUNITY_Community 140|Community 140]] +- [[_COMMUNITY_Community 141|Community 141]] +- [[_COMMUNITY_Community 142|Community 142]] +- [[_COMMUNITY_Community 143|Community 143]] +- [[_COMMUNITY_Community 144|Community 144]] +- [[_COMMUNITY_Community 145|Community 145]] +- [[_COMMUNITY_Community 146|Community 146]] +- [[_COMMUNITY_Community 147|Community 147]] +- [[_COMMUNITY_Community 148|Community 148]] +- [[_COMMUNITY_Community 149|Community 149]] +- [[_COMMUNITY_Community 150|Community 150]] +- [[_COMMUNITY_Community 151|Community 151]] +- [[_COMMUNITY_Community 152|Community 152]] +- [[_COMMUNITY_Community 153|Community 153]] +- [[_COMMUNITY_Community 154|Community 154]] +- [[_COMMUNITY_Community 155|Community 155]] +- [[_COMMUNITY_Community 156|Community 156]] +- [[_COMMUNITY_Community 157|Community 157]] +- [[_COMMUNITY_Community 158|Community 158]] +- [[_COMMUNITY_Community 159|Community 159]] +- [[_COMMUNITY_Community 160|Community 160]] +- [[_COMMUNITY_Community 161|Community 161]] +- [[_COMMUNITY_Community 162|Community 162]] +- [[_COMMUNITY_Community 163|Community 163]] +- [[_COMMUNITY_Community 164|Community 164]] +- [[_COMMUNITY_Community 165|Community 165]] +- [[_COMMUNITY_Community 166|Community 166]] +- [[_COMMUNITY_Community 167|Community 167]] +- [[_COMMUNITY_Community 168|Community 168]] +- [[_COMMUNITY_Community 169|Community 169]] +- [[_COMMUNITY_Community 170|Community 170]] +- [[_COMMUNITY_Community 171|Community 171]] +- [[_COMMUNITY_Community 172|Community 172]] +- [[_COMMUNITY_Community 173|Community 173]] +- [[_COMMUNITY_Community 174|Community 174]] +- [[_COMMUNITY_Community 175|Community 175]] +- [[_COMMUNITY_Community 176|Community 176]] +- [[_COMMUNITY_Community 177|Community 177]] +- [[_COMMUNITY_Community 178|Community 178]] +- [[_COMMUNITY_Community 179|Community 179]] +- [[_COMMUNITY_Community 180|Community 180]] +- [[_COMMUNITY_Community 181|Community 181]] +- [[_COMMUNITY_Community 182|Community 182]] +- [[_COMMUNITY_Community 183|Community 183]] +- [[_COMMUNITY_Community 184|Community 184]] +- [[_COMMUNITY_Community 185|Community 185]] +- [[_COMMUNITY_Community 186|Community 186]] +- [[_COMMUNITY_Community 187|Community 187]] +- [[_COMMUNITY_Community 188|Community 188]] +- [[_COMMUNITY_Community 189|Community 189]] +- [[_COMMUNITY_Community 190|Community 190]] +- [[_COMMUNITY_Community 191|Community 191]] +- [[_COMMUNITY_Community 192|Community 192]] +- [[_COMMUNITY_Community 193|Community 193]] +- [[_COMMUNITY_Community 194|Community 194]] +- [[_COMMUNITY_Community 195|Community 195]] +- [[_COMMUNITY_Community 196|Community 196]] +- [[_COMMUNITY_Community 197|Community 197]] +- [[_COMMUNITY_Community 198|Community 198]] +- [[_COMMUNITY_Community 199|Community 199]] +- [[_COMMUNITY_Community 200|Community 200]] +- [[_COMMUNITY_Community 201|Community 201]] +- [[_COMMUNITY_Community 202|Community 202]] +- [[_COMMUNITY_Community 203|Community 203]] +- [[_COMMUNITY_Community 204|Community 204]] +- [[_COMMUNITY_Community 205|Community 205]] +- [[_COMMUNITY_Community 206|Community 206]] +- [[_COMMUNITY_Community 207|Community 207]] +- [[_COMMUNITY_Community 208|Community 208]] +- [[_COMMUNITY_Community 209|Community 209]] +- [[_COMMUNITY_Community 210|Community 210]] +- [[_COMMUNITY_Community 211|Community 211]] +- [[_COMMUNITY_Community 212|Community 212]] +- [[_COMMUNITY_Community 213|Community 213]] +- [[_COMMUNITY_Community 214|Community 214]] +- [[_COMMUNITY_Community 215|Community 215]] +- [[_COMMUNITY_Community 216|Community 216]] +- [[_COMMUNITY_Community 217|Community 217]] +- [[_COMMUNITY_Community 218|Community 218]] +- [[_COMMUNITY_Community 219|Community 219]] +- [[_COMMUNITY_Community 220|Community 220]] +- [[_COMMUNITY_Community 221|Community 221]] +- [[_COMMUNITY_Community 222|Community 222]] +- [[_COMMUNITY_Community 223|Community 223]] +- [[_COMMUNITY_Community 224|Community 224]] +- [[_COMMUNITY_Community 225|Community 225]] +- [[_COMMUNITY_Community 226|Community 226]] +- [[_COMMUNITY_Community 227|Community 227]] +- [[_COMMUNITY_Community 228|Community 228]] +- [[_COMMUNITY_Community 229|Community 229]] +- [[_COMMUNITY_Community 230|Community 230]] +- [[_COMMUNITY_Community 231|Community 231]] +- [[_COMMUNITY_Community 232|Community 232]] +- [[_COMMUNITY_Community 233|Community 233]] +- [[_COMMUNITY_Community 234|Community 234]] +- [[_COMMUNITY_Community 235|Community 235]] +- [[_COMMUNITY_Community 236|Community 236]] +- [[_COMMUNITY_Community 237|Community 237]] +- [[_COMMUNITY_Community 238|Community 238]] +- [[_COMMUNITY_Community 239|Community 239]] +- [[_COMMUNITY_Community 240|Community 240]] +- [[_COMMUNITY_Community 241|Community 241]] +- [[_COMMUNITY_Community 242|Community 242]] +- [[_COMMUNITY_Community 243|Community 243]] +- [[_COMMUNITY_Community 244|Community 244]] +- [[_COMMUNITY_Community 245|Community 245]] +- [[_COMMUNITY_Community 249|Community 249]] +- [[_COMMUNITY_Community 250|Community 250]] +- [[_COMMUNITY_Community 251|Community 251]] + +## God Nodes (most connected - your core abstractions) +1. `Focus Group` - 106 edges +2. `cn()` - 81 edges +3. `get_db()` - 79 edges +4. `get_jwt_identity()` - 53 edges +5. `LLMService` - 47 edges +6. `Button` - 47 edges +7. `Autonomous Conversation Controller` - 42 edges +8. `DiscussionGuideValidator` - 40 edges +9. `conversation_state_manager.py` - 37 edges +10. `AIRecruiter()` - 36 edges + +## Surprising Connections (you probably didn't know these) +- `Semblance Architecture PDF Document` --semantically_similar_to--> `Application Documentation Overview` [INFERRED] [semantically similar] + semblance_architecture.pdf → semblance_app_documentation.md +- `Semblance Security Remediation Report PDF` --semantically_similar_to--> `Semblance Security Audit Report` [INFERRED] [semantically similar] + security_report.pdf → security_report.md +- `conversation_state_manager.py` --semantically_similar_to--> `services/conversation_state_manager.py` [INFERRED] [semantically similar] + CLAUDE.md → security_report.md +- `personasApi` --conceptually_related_to--> `Synthetic Persona` [INFERRED] + src/lib/api.ts → backend/prompts/persona-detailed-generation.md +- `focusGroupAiApi` --conceptually_related_to--> `Focus Group` [INFERRED] + src/lib/api.ts → backend/README.md + +## Communities (252 total, 148 thin omitted) + +### Community 0 - "Community 0" +Cohesion: 0.05 +Nodes (79): ADR: Dedicated OS Thread for Autonomous AI, ADR: Quart + Hypercorn ASGI Stack, ADR: Multi-Provider LLM Routing, app/extensions.py (socketio AsyncServer), contexts/WebSocketContextNew.tsx, AI Runner Service (ai_runner_service.py), src/lib/api.ts, conversation_decision_service.py (+71 more) + +### Community 1 - "Community 1" +Cohesion: 0.04 +Nodes (54): UserCardProps, cn(), AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertTitle (+46 more) + +### Community 2 - "Community 2" +Cohesion: 0.03 +Nodes (58): dependencies, axios, @azure/msal-browser, @azure/msal-react, caniuse-lite, class-variance-authority, clsx, cmdk (+50 more) + +### Community 3 - "Community 3" +Cohesion: 0.06 +Nodes (31): Autonomous Conversation Controller, get_autonomous_conversation_status(), get_reasoning_history(), Get the AI reasoning history for an autonomous conversation. Returns:, Get the status of autonomous conversation for a focus group. Returns:, Autonomous Conversation Controller Orchestrates the autonomous conversation flow, Fallback method to advance position sequentially., Yield control to allow other tasks to run and flush WebSocket frames. (+23 more) + +### Community 4 - "Community 4" +Cohesion: 0.07 +Nodes (44): BaseDocTemplate, Flowable, Paragraph, ArchDocTemplate, BookmarkedHeading, build_architecture_doc(), build_chapter_1(), bullet() (+36 more) + +### Community 5 - "Community 5" +Cohesion: 0.08 +Nodes (38): formSchema, AIRecruiterProps, ChatMessageProps, initialThemes, sampleFocusGroups, samplePersonas, DiscussionPanel(), DiscussionPanelProps (+30 more) + +### Community 6 - "Community 6" +Cohesion: 0.06 +Nodes (36): create_app(), Set up temporary directories for file handling., setup_temp_directories(), create_app_logger(), CustomHTTPFilter, Custom logging configuration for the application to reduce noise., Filter to reduce noise from routine HTTP requests., Filter log records to reduce noise from routine operations. (+28 more) + +### Community 7 - "Community 7" +Cohesion: 0.10 +Nodes (31): PersonaReviewList(), PersonaReviewListProps, LoginRequiredProps, ThemeHighlighterProps, StatCard(), StatCardProps, AutonomousDashboardProps, ConversationAnalytics (+23 more) + +### Community 8 - "Community 8" +Cohesion: 0.07 +Nodes (43): batch_generate_and_save_personas(), batch_generate_personas(), batch_generate_summaries(), complete_and_save_persona(), complete_persona(), enhance_audience_brief_endpoint(), generate_ai_persona(), generate_and_save_persona() (+35 more) + +### Community 9 - "Community 9" +Cohesion: 0.08 +Nodes (22): BackendAsset, LocalAsset, Folder, FolderTreeProps, DashboardHeader(), activityData, sentimentData, topicBreakdownData (+14 more) + +### Community 10 - "Community 10" +Cohesion: 0.07 +Nodes (26): AdminRoute(), AdminRouteProps, msalInstance, MsalProvider(), UserCreator(), loginRequest, silentRequest, tokenRequest (+18 more) + +### Community 11 - "Community 11" +Cohesion: 0.12 +Nodes (38): get_db(), Get database connection using singleton Motor client per event loop., Focus Group, _activate_visual_assets(), add_generated_theme(), add_message(), add_mode_event(), add_note() (+30 more) + +### Community 12 - "Community 12" +Cohesion: 0.07 +Nodes (22): Stop autonomous conversation for a focus group. Request body: {, stop_autonomous_conversation(), get_ai_runner(), init_ai_runner(), AI Runner Service Provides a single dedicated thread with an asyncio event loop, Main thread function that runs the asyncio event loop., Initialize async resources (database, HTTP clients) on the AI loop., Cleanup async resources. (+14 more) + +### Community 13 - "Community 13" +Cohesion: 0.11 +Nodes (24): PRESETS, Props, GroupBy, UsageTab(), User, UsersTab(), UsageSummaryParams, useAdminUsageSummary() (+16 more) + +### Community 14 - "Community 14" +Cohesion: 0.14 +Nodes (23): PricingRow, PricingTab(), PricingTier, CopyGuideDialog(), QuickNoteModalProps, Note, useCreatePricing(), DiscussionGuideGenerationReturn (+15 more) + +### Community 15 - "Community 15" +Cohesion: 0.16 +Nodes (25): AIRecruiter(), formSchema, UserCreatorProps, SetupTab(), SetupTabProps, ModificationFormData, modificationFormSchema, FormControl (+17 more) + +### Community 16 - "Community 16" +Cohesion: 0.13 +Nodes (21): formSchema, NavigationContextType, NavigationState, AnalyticsPanel(), FolderSidebar(), personasApi, PersonaEditor(), PersonaProfile() (+13 more) + +### Community 17 - "Community 17" +Cohesion: 0.11 +Nodes (27): AI Moderator Service, advance_discussion(), _advance_position(), _count_completed_items(), _count_total_items(), end_session_with_concluding_statement(), _format_messages_for_context(), _generate_concluding_statement() (+19 more) + +### Community 18 - "Community 18" +Cohesion: 0.10 +Nodes (17): Persona Export Service, Bulk Persona Export Service Handles bulk export of persona profiles to various, Create comprehensive markdown from persona data with all fields included., Service for bulk exporting persona profiles with progress tracking., Create a temporary directory for export files., Export multiple personas to specified format with progress tracking., Export personas as markdown files in a ZIP archive., Sanitize filename for safe file system use. (+9 more) + +### Community 19 - "Community 19" +Cohesion: 0.08 +Nodes (24): Image Description Service, Exception, FocusGroupSummaryError, generate_focus_group_summary(), Focus Group Summary Service This service generates LLM-powered one-line summari, Custom exception for focus group summary generation errors., Generate a one-line summary of a focus group for display in list views. Arg, generate_description() (+16 more) + +### Community 20 - "Community 20" +Cohesion: 0.09 +Nodes (29): create_user(), disable_user(), enable_user(), get_user(), list_focus_groups(), list_users(), _month_start(), _parse_iso() (+21 more) + +### Community 21 - "Community 21" +Cohesion: 0.08 +Nodes (17): WebSocketContext, WebSocketProvider(), WebSocketProviderProps, UseWebSocketOptions, UseWebSocketReturn, WebSocketState, convertWebSocketMessage(), convertWebSocketTheme() (+9 more) + +### Community 22 - "Community 22" +Cohesion: 0.12 +Nodes (20): createPersistentToast(), PersistentToastOptions, persistentToasts, toastService, updatePersistentToast(), UpdatePersistentToastOptions, sampleFocusGroups, statusColors (+12 more) + +### Community 23 - "Community 23" +Cohesion: 0.11 +Nodes (27): Focus Group Response Service (Mermaid), advance_moderator_discussion(), Advance the moderator to the next item in the discussion guide. For manual m, add_focus_group_message(), Add a new message to a focus group., _determine_response_length_preference(), extract_asset_filename_from_content(), FocusGroupResponseError (+19 more) + +### Community 24 - "Community 24" +Cohesion: 0.07 +Nodes (25): Separator, Sidebar, SidebarContext, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel (+17 more) + +### Community 25 - "Community 25" +Cohesion: 0.12 +Nodes (28): get_async_websocket_manager(), Get the global async WebSocket manager instance., generate_key_themes(), make_conversation_decision(), Make a conversation decision using the LLM decision engine. Returns 202 imme, Generate key themes from a focus group discussion. Request body: {, _run_conversation_decision_bg(), _run_key_themes_bg() (+20 more) + +### Community 26 - "Community 26" +Cohesion: 0.09 +Nodes (21): Quart Authentication Module Provides JWT authentication functionality compatibl, create_access_token(), decode_token(), get_current_user(), jwt_required(), QuartJWTError, Quart-compatible JWT Authentication Replacement for Flask-JWT-Extended to work, Get current user ID (alias for get_jwt_identity). (+13 more) + +### Community 27 - "Community 27" +Cohesion: 0.12 +Nodes (22): conversation_state_manager.py, get_conversation_analytics(), manual_intervention(), Manually intervene in autonomous conversation. Request body: {, Get detailed conversation analytics for a focus group. Returns:, Conversation State Manager Manages conversation state, analytics, and tracking f, Manager for conversation state and analytics., Check if the analytics cache is still valid. (+14 more) + +### Community 28 - "Community 28" +Cohesion: 0.10 +Nodes (13): AsyncWebSocketManager, Join a user session to a focus group room., Remove a user session from a focus group room., Emit an event to all users in a focus group room., Store the main ASGI event loop for cross-thread emission., Emit a new message to focus group participants., Register all WebSocket event handlers., Emit AI status change to focus group participants. (+5 more) + +### Community 29 - "Community 29" +Cohesion: 0.10 +Nodes (25): get_jwt_identity(), Get the identity (user ID) from the current JWT token. Returns:, cleanup_customer_data(), Upload customer data files and parse them using LlamaParse. Request: mu, Clean up customer data files for a specific session. Args: sess, Rate limit key: endpoint + user identity (set after JWT validation)., upload_customer_data(), _user_key() (+17 more) + +### Community 30 - "Community 30" +Cohesion: 0.08 +Nodes (23): initialize_database(), Set up temp directories before Quart imports., Initialize the application on startup., Run the server with enhanced shutdown pattern and diagnostics., run_server(), setup_early_temp_directories(), startup(), aliases (+15 more) + +### Community 31 - "Community 31" +Cohesion: 0.18 +Nodes (15): check_quota(), Check quotas and raise QuotaExceededError if either is exceeded. Returns a, Tests for the usage tracking infrastructure added in Phase A-C: - LLMCallConte, check_quota does lazy imports inside the function body: from app.models., test_admin_bypasses_user_quota(), test_db_error_in_quota_check_is_non_fatal(), test_exactly_at_quota_limit_is_exceeded(), test_fg_quota_at_80_percent_returns_warning() (+7 more) + +### Community 32 - "Community 32" +Cohesion: 0.09 +Nodes (15): ContainerData, DiscussionGuideItem, DiscussionGuideSection, DiscussionGuideSubsection, DroppableContainer(), getItemsByContainer(), ItemData, Kind (+7 more) + +### Community 33 - "Community 33" +Cohesion: 0.23 +Nodes (22): type, _extract_responses_api_content(), _extract_text_from_new_genai_response(), _extract_usage_metadata(), generate_content(), generate_contextual_response(), generate_multimodal_content(), generate_structured_array() (+14 more) + +### Community 34 - "Community 34" +Cohesion: 0.09 +Nodes (22): create_pricing(), list_pricing(), GET /api/admin/pricing — active pricing rows for all models., POST /api/admin/pricing — insert a new pricing row., add_focus_group_note(), create_focus_group(), get_all_focus_groups(), get_assets() (+14 more) + +### Community 35 - "Community 35" +Cohesion: 0.09 +Nodes (22): services/ai_persona_service.py, docs/project/api_spec.md, docs/project/architecture.md, services/autonomous_conversation_controller.py, docs/project/database_schema.md, AGENTS.md Project Entry Point, services/focus_group_response_service.py, services/focus_group_summary_service.py (+14 more) + +### Community 36 - "Community 36" +Cohesion: 0.09 +Nodes (21): compilerOptions, allowImportingTsExtensions, baseUrl, isolatedModules, jsx, lib, module, moduleDetection (+13 more) + +### Community 37 - "Community 37" +Cohesion: 0.10 +Nodes (21): delete_key_theme(), end_focus_group_session(), _format_persona_details_for_context(), generate_ai_response(), get_conversation_insights(), get_key_themes(), get_moderator_status(), _get_response_length_instructions() (+13 more) + +### Community 38 - "Community 38" +Cohesion: 0.13 +Nodes (19): Backend Service (Docker), Frontend Build Service (Docker), MongoDB Service (Docker), Backend Tech Stack, Hypercorn ASGI Server, MongoDB Database, Quart Async Python Framework, Socket.IO Real-Time Communication (+11 more) + +### Community 39 - "Community 39" +Cohesion: 0.11 +Nodes (20): services/key_theme_service.py, services/task_manager.py, A-H1: MSAL Token Backend Validation Fix, app/utils.py (make_serializable), src/contexts/AuthContext.tsx, auth/quart_jwt.py, services/conversation_state_manager.py, F-H2: Non-401 Auth Token Fix (AuthContext.tsx) (+12 more) + +### Community 40 - "Community 40" +Cohesion: 0.16 +Nodes (18): Conversation Context Service, _analyze_conversation(), _analyze_sentiment(), build_multimodal_context(), _detect_emerging_topics(), _extract_visual_timeline(), _format_conversation_history(), _format_text_context_simple() (+10 more) + +### Community 41 - "Community 41" +Cohesion: 0.18 +Nodes (8): QuotaExceededError, QuotaWarning, GET /api/admin/usage/events?user_id=&focus_group_id=&feature=&skip=&limit=, usage_events(), LLMCallContext, TestLLMUsageContext, TestQuotaExceededError, TestUsageEventRecord + +### Community 42 - "Community 42" +Cohesion: 0.11 +Nodes (4): OpenAI Responses API format (gpt-5.4-2026-03-05)., OpenAI Chat Completions format (legacy)., Fields that return None should be coerced to 0, not None., TestLLMServicePureStaticMethods + +### Community 43 - "Community 43" +Cohesion: 0.11 +Nodes (18): add_persona_to_folder(), create_folder(), delete_folder(), get_folder(), get_folder_descendants(), get_folders(), move_folder(), Delete a folder and its entire hierarchy. (+10 more) + +### Community 44 - "Community 44" +Cohesion: 0.12 +Nodes (12): get_websocket_manager(), init_websocket_manager(), WebSocket Manager for Synthetic Society Handles WebSocket connections, room mana, Join a user session to a focus group room., Remove a user session from a focus group room., Get information about a focus group room., Get overall connection statistics., Initialize the global WebSocket manager using singleton SocketIO. (+4 more) + +### Community 45 - "Community 45" +Cohesion: 0.14 +Nodes (17): add_persona(), add_personas_batch(), create(), delete(), delete_hierarchy(), find_by_id(), Folder, generate_unique_name() (+9 more) + +### Community 46 - "Community 46" +Cohesion: 0.11 +Nodes (5): Tests for LLMService — covers parse_json_response (sync) and generate_structured, Fields returning None should become 0, not None., Static — no external calls., TestExtractUsageMetadata, TestParseJsonResponse + +### Community 47 - "Community 47" +Cohesion: 0.12 +Nodes (11): find_by_user(), bump_token_version(), count(), find_all(), find_by_email(), find_by_id(), find_by_microsoft_id(), get_token_version() (+3 more) + +### Community 48 - "Community 48" +Cohesion: 0.12 +Nodes (17): devDependencies, autoprefixer, eslint, @eslint/js, eslint-plugin-react-hooks, eslint-plugin-react-refresh, globals, lovable-tagger (+9 more) + +### Community 49 - "Community 49" +Cohesion: 0.14 +Nodes (4): runWebSocketDiagnostics(), WebSocketPerformanceMetrics, WebSocketTester, WebSocketTestResult + +### Community 50 - "Community 50" +Cohesion: 0.13 +Nodes (16): delete_asset(), ensure_upload_folder(), get_upload_folder(), process_files_directly_from_request(), Get the upload folder path for a focus group., Ensure the upload folder exists for a focus group., Save uploaded file directly to avoid temporary file issues., Upload creative assets for a focus group. (+8 more) + +### Community 51 - "Community 51" +Cohesion: 0.12 +Nodes (10): check_cancellation(), Task Manager Service for handling cancellable long-running operations. This ser, Get information about a task by its ID., Get all active tasks for a specific user., Store task result for polling. Called by background functions., Get the number of currently active tasks., Force cleanup of all tasks (useful for testing/shutdown)., Decorator to add cancellation checkpoints to functions. Should be used on fu (+2 more) + +### Community 52 - "Community 52" +Cohesion: 0.18 +Nodes (15): Key Theme Service, _build_theme_extraction_prompt(), _extract_themes_from_discussion(), generate_key_themes(), KeyThemeServiceError, _parse_quote_with_message_id(), Key Theme Generation Service This service provides functions for generating key, Exception raised for errors in key theme generation. (+7 more) + +### Community 53 - "Community 53" +Cohesion: 0.19 +Nodes (3): Two-tier Gemini pricing: <200k and >=200k., Single-tier GPT pricing., TestModelPricingPureLogic + +### Community 54 - "Community 54" +Cohesion: 0.12 +Nodes (15): compilerOptions, allowImportingTsExtensions, isolatedModules, lib, module, moduleDetection, moduleResolution, noEmit (+7 more) + +### Community 55 - "Community 55" +Cohesion: 0.14 +Nodes (7): Emit an event to all users in a focus group room., Emit a new message to focus group participants., Emit AI status change to focus group participants., Emit moderator status change to focus group participants., Emit theme update to focus group participants., Emit analytics update to focus group participants., Emit conversation state update to focus group participants. + +### Community 56 - "Community 56" +Cohesion: 0.15 +Nodes (8): Customer Data Service for parsing uploaded files using LlamaParse. Handles file, Get all parsed markdown content for a session. Args:, Clean up all files for a session. Args: session_id:, Exception raised for errors in customer data processing., Service for handling customer data upload and parsing., Initialize the service with LlamaParse API key., Generate a unique session ID for this upload session., Upload files and parse them using LlamaParse. Args: + +### Community 57 - "Community 57" +Cohesion: 0.14 +Nodes (13): find_legacy_folders(), find_user_id(), get_db_connection(), migrate_folder(), Migrate a single folder to add missing hierarchy fields., Main migration function., Get database connection using the same logic as the app., Find user ID by username. (+5 more) + +### Community 58 - "Community 58" +Cohesion: 0.19 +Nodes (14): AI Moderation, Discussion Guide, Probe Trigger, Thematic Analysis, DiscussionGuideItem, DiscussionGuideSection(), AI Moderator System Prompt, Conversation Decision Engine Prompt (+6 more) + +### Community 59 - "Community 59" +Cohesion: 0.19 +Nodes (13): convert_discussion_guide_to_markdown(), download_discussion_guide(), format_discussion_item_markdown(), Download the discussion guide for a focus group as a markdown file. Ret, Convert a discussion guide to markdown format. Handles both structured (JSON, Format a discussion item (question or activity) as markdown., convertLegacyDiscussionGuideToMarkdown(), convertStructuredDiscussionGuideToMarkdown() (+5 more) + +### Community 60 - "Community 60" +Cohesion: 0.18 +Nodes (8): CancellableGenerationControls, initialState, TaskPollingControls, TaskPollingState, cancelTask(), cancelTaskWithFeedback(), TaskCancellationResponse, CancellableGenerationHookState + +### Community 61 - "Community 61" +Cohesion: 0.18 +Nodes (11): Folder, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut() (+3 more) + +### Community 62 - "Community 62" +Cohesion: 0.15 +Nodes (12): compilerOptions, allowJs, baseUrl, noImplicitAny, noUnusedLocals, noUnusedParameters, paths, skipLibCheck (+4 more) + +### Community 63 - "Community 63" +Cohesion: 0.15 +Nodes (11): Context manager for creating cancellable tasks with automatic cleanup., CancellableResponse, DiscussionGuideResponse, GenerationProgressProps, KeyThemesResponse, PersonaGenerationResponse, PersonaModificationResponse, SummaryGenerationResponse (+3 more) + +### Community 64 - "Community 64" +Cohesion: 0.15 +Nodes (12): Carousel, CarouselApi, CarouselContent, CarouselContext, CarouselContextProps, CarouselItem, CarouselNext, CarouselOptions (+4 more) + +### Community 65 - "Community 65" +Cohesion: 0.17 +Nodes (9): ChartConfig, ChartContainer, ChartContext, ChartContextProps, ChartLegendContent, ChartStyle(), ChartTooltipContent, sanitizeChartId() (+1 more) + +### Community 66 - "Community 66" +Cohesion: 0.17 +Nodes (7): get_websocket_debug_tap(), WebSocket Debug Tap Monitors all WebSocket emissions at the Flask-SocketIO level, Debug tap that monitors all WebSocket emissions., Install the debug tap on a SocketIO instance., Get recent WebSocket emissions., Clear the emission log., Get the global WebSocket debug tap. + +### Community 67 - "Community 67" +Cohesion: 0.17 +Nodes (12): AI Operations API Endpoints, POST /api/auth/login Endpoint, Focus Groups API Endpoints, Personas API Endpoints, Application Documentation Overview, AuthContext State Management, DiscussionGuide TypeScript Interface, FocusGroup TypeScript Interface (+4 more) + +### Community 68 - "Community 68" +Cohesion: 0.17 +Nodes (7): Background task done — retain result for polling (TTL sweeper handles cleanup)., Information about a running task., Convenience function to register a task with the global task manager. R, Generate a unique task ID., Register a new task for tracking and potential cancellation. Ar, register_cancellable_task(), TaskInfo + +### Community 69 - "Community 69" +Cohesion: 0.17 +Nodes (11): Menubar, MenubarCheckboxItem, MenubarContent, MenubarItem, MenubarLabel, MenubarRadioItem, MenubarSeparator, MenubarShortcut() (+3 more) + +### Community 70 - "Community 70" +Cohesion: 0.24 +Nodes (11): Auth Context (Mermaid), Focus Group Service (Mermaid), Offline Mode / Local Storage Fallback, AI Persona Service (Mermaid), System Architecture Mermaid Diagram, _add_metadata_to_activity(), _add_visual_asset_metadata_to_guide(), _generate_assets_section() (+3 more) + +### Community 71 - "Community 71" +Cohesion: 0.18 +Nodes (10): name, private, scripts, backend, build, build:dev, dev, lint (+2 more) + +### Community 72 - "Community 72" +Cohesion: 0.27 +Nodes (10): Persona, Sanitize persona data to make it JSON serializable. Args: perso, _sanitize_persona_data_for_json(), modify_persona(), PersonaModificationError, _protect_readonly_fields(), Persona Modification Service This service handles AI-powered modification of ex, Exception raised for errors in the persona modification process. (+2 more) + +### Community 73 - "Community 73" +Cohesion: 0.20 +Nodes (10): Authentication Feature, deploy.sh Deployment Script, Frontend Tech Stack, MSAL Azure AD Authentication, Persona Management Feature, Semblance Synthetic Society README, start.sh Local Development Script, msal==1.24.1 (+2 more) + +### Community 74 - "Community 74" +Cohesion: 0.20 +Nodes (9): ContextMenuCheckboxItem, ContextMenuContent, ContextMenuItem, ContextMenuLabel, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut(), ContextMenuSubContent (+1 more) + +### Community 75 - "Community 75" +Cohesion: 0.20 +Nodes (8): ip_key(), rate_limit(), RateLimiter, Simple in-memory rate limiter for Quart endpoints. Uses a sliding-window counter, Thread-safe in-memory rate limiter using sliding window., Return True if the request is within the rate limit., Decorator that rate-limits a Quart route. Args: max_requests: Maxim, Rate limit key: function name + client IP. + +### Community 76 - "Community 76" +Cohesion: 0.22 +Nodes (5): Check if the state cache is still valid., Get the current topic of discussion., Calculate participation statistics., Get the current conversation state. Returns: Dictio, Assess the health of the conversation. + +### Community 77 - "Community 77" +Cohesion: 0.22 +Nodes (8): SheetContent, SheetContentProps, SheetDescription, SheetFooter(), SheetHeader(), SheetOverlay, SheetTitle, sheetVariants + +### Community 78 - "Community 78" +Cohesion: 0.22 +Nodes (8): get_task_result(), get_task_status(), get_user_tasks(), Task management routes for handling cancellable operations., Get all active tasks for the authenticated user. Returns: JSON resp, Get overall task manager status (for debugging/monitoring). Returns:, Poll for task status and result. Returns 200 with {task_id, status, task_typ, Get task status and result for polling endpoint. + +### Community 79 - "Community 79" +Cohesion: 0.25 +Nodes (6): Quart Extensions Module Provides singleton instances of Quart extensions to ensu, emit_websocket_event(), init_async_websocket_manager(), Async WebSocket Manager for Synthetic Society Handles WebSocket connections, roo, Initialize the global async WebSocket manager., Async WebSocket event emission function. Args: event: Event nam + +### Community 80 - "Community 80" +Cohesion: 0.39 +Nodes (8): Avatar / Profile Image Concept, Nonbinary Avatar PNG, XMP Metadata (Nonbinary Avatar), Placeholder SVG, Placeholder Circle Element, Placeholder SVG Linear Gradients, Placeholder SVG Icon/Clippath, Public Assets Directory + +### Community 81 - "Community 81" +Cohesion: 0.32 +Nodes (8): LLM Service (llm_service.py), AI Integration Feature, Google Gemini AI Model, LLM Service (llm_service.py), OpenAI GPT Models, Prompt Loader (prompt_loader.py), google-genai (Google Generative AI), openai==1.99.5 + +### Community 82 - "Community 82" +Cohesion: 0.25 +Nodes (4): Start autonomous conversation for a focus group. Request body: {, Update conversation state. Args: updates: Dictionar, Start autonomous conversation mode., End autonomous conversation mode. + +### Community 83 - "Community 83" +Cohesion: 0.25 +Nodes (5): barData, COLORS, LineChartProps, lineData, pieData + +### Community 85 - "Community 85" +Cohesion: 0.29 +Nodes (6): create(), delete(), find_by_id(), find_by_user(), get_all(), update() + +### Community 86 - "Community 86" +Cohesion: 0.29 +Nodes (6): active_required(), admin_required(), Route decorator requiring admin role. Must be stacked BELOW @jwt_required()., Route decorator that rejects requests from disabled users. Guards LLM-invok, Route decorator that injects the JWT user_id into the LLM usage ContextVar., with_user_context() + +### Community 87 - "Community 87" +Cohesion: 0.33 +Nodes (3): Generate conversation flow analytics., Assess the quality of conversation flow., Analyze turn-taking patterns. + +### Community 88 - "Community 88" +Cohesion: 0.47 +Nodes (5): connect_to_mongodb(), create_default_user(), main(), Connect to MongoDB using MONGO_URI env var or interactive credentials., Create a default admin user for sample data (DEV ONLY). Password must be pro + +### Community 89 - "Community 89" +Cohesion: 0.53 +Nodes (6): _cache_get(), _cache_set(), compute_cost(), current_for(), ModelPricing, pick_tier() + +### Community 90 - "Community 90" +Cohesion: 0.50 +Nodes (4): emit_websocket_event(), Start the background emitter task if it hasn't been started yet., Safe to call from ANY context (asyncio task, worker thread, request thread)., _start_emitter_if_needed() + +### Community 91 - "Community 91" +Cohesion: 0.67 +Nodes (3): get_script_db(), main(), Get MongoDB connection using MONGO_URI or interactive credentials. + +### Community 92 - "Community 92" +Cohesion: 0.50 +Nodes (4): is_allowed_file(), Check if file has an allowed extension., Validate uploaded asset file (images and documents)., validate_asset_file() + +### Community 93 - "Community 93" +Cohesion: 0.50 +Nodes (3): cancel_task_by_id(), Convenience function to cancel a task by ID. Returns: True if task, Cancel a task by its ID. Args: task_id: The ID of t + +### Community 95 - "Community 95" +Cohesion: 0.50 +Nodes (3): conftest.py — sys.modules stubs so tests run without the full Docker venv. All h, Register MagicMocks under each name in sys.modules., _stub() + +### Community 99 - "Community 99" +Cohesion: 0.67 +Nodes (3): get_conversation_state(), Get the current conversation state for a focus group. Returns:, Get the current status of the autonomous conversation. + +## Knowledge Gaps +- **442 isolated node(s):** `target`, `lib`, `module`, `skipLibCheck`, `moduleResolution` (+437 more) + These have ≤1 connection - possible missing edges or undocumented components. +- **148 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes. + +## Suggested Questions +_Questions this graph is uniquely positioned to answer:_ + +- **Why does `Focus Group` connect `Community 11` to `Community 0`, `Community 3`, `Community 5`, `Community 6`, `Community 7`, `Community 9`, `Community 10`, `Community 14`, `Community 16`, `Community 17`, `Community 19`, `Community 22`, `Community 23`, `Community 25`, `Community 27`, `Community 29`, `Community 32`, `Community 34`, `Community 40`, `Community 41`, `Community 50`, `Community 52`, `Community 58`, `Community 59`, `Community 70`, `Community 92`, `Community 98`, `Community 106`, `Community 107`, `Community 108`, `Community 109`?** + _High betweenness centrality (0.403) - this node is a cross-community bridge._ +- **Why does `LLMService` connect `Community 33` to `Community 0`, `Community 70`, `Community 8`, `Community 41`, `Community 72`, `Community 42`, `Community 46`, `Community 17`, `Community 18`, `Community 19`, `Community 52`, `Community 53`, `Community 84`, `Community 23`, `Community 89`, `Community 31`?** + _High betweenness centrality (0.094) - this node is a cross-community bridge._ +- **Why does `cn()` connect `Community 1` to `Community 2`, `Community 5`, `Community 7`, `Community 9`, `Community 10`, `Community 13`, `Community 14`, `Community 15`, `Community 16`, `Community 22`, `Community 24`, `Community 32`, `Community 58`, `Community 61`, `Community 64`, `Community 65`, `Community 69`, `Community 74`, `Community 77`?** + _High betweenness centrality (0.082) - this node is a cross-community bridge._ +- **Are the 16 inferred relationships involving `Focus Group` (e.g. with `QuotaExceededError` and `QuotaWarning`) actually correct?** + _`Focus Group` has 16 INFERRED edges - model-reasoned connections that need verification._ +- **Are the 77 inferred relationships involving `get_db()` (e.g. with `find_by_user()` and `find_by_email()`) actually correct?** + _`get_db()` has 77 INFERRED edges - model-reasoned connections that need verification._ +- **Are the 50 inferred relationships involving `get_jwt_identity()` (e.g. with `get_profile()` and `get_persona()`) actually correct?** + _`get_jwt_identity()` has 50 INFERRED edges - model-reasoned connections that need verification._ +- **What connects `target`, `lib`, `module` to the rest of the system?** + _961 weakly-connected nodes found - possible documentation gaps or missing edges._ \ No newline at end of file diff --git a/wiki/architecture/smartcrop26-structure.md b/wiki/architecture/smartcrop26-structure.md new file mode 100644 index 0000000..946bd8b --- /dev/null +++ b/wiki/architecture/smartcrop26-structure.md @@ -0,0 +1,227 @@ +--- +tags: [architecture, graphify, smartcrop26] +updated: 2026-05-18 +--- + +# Graph Report - /Users/ai_leed/Documents/Projects/Oliver/smartcrop26 (2026-05-18) + +## Corpus Check +- cluster-only mode — file stats not available + +## Summary +- 518 nodes · 694 edges · 44 communities (42 shown, 2 thin omitted) +- Extraction: 99% EXTRACTED · 1% INFERRED · 0% AMBIGUOUS · INFERRED: 8 edges (avg confidence: 0.88) +- Token cost: 0 input · 0 output + +## Graph Freshness +- Built from commit: `54eddd70` +- Run `git rev-parse HEAD` and compare to check if the graph is stale. +- Run `graphify update .` after code changes (no API cost). + +## Community Hubs (Navigation) +- [[_COMMUNITY_Community 0|Community 0]] +- [[_COMMUNITY_Community 1|Community 1]] +- [[_COMMUNITY_Community 2|Community 2]] +- [[_COMMUNITY_Community 3|Community 3]] +- [[_COMMUNITY_Community 4|Community 4]] +- [[_COMMUNITY_Community 5|Community 5]] +- [[_COMMUNITY_Community 6|Community 6]] +- [[_COMMUNITY_Community 7|Community 7]] +- [[_COMMUNITY_Community 8|Community 8]] +- [[_COMMUNITY_Community 9|Community 9]] +- [[_COMMUNITY_Community 10|Community 10]] +- [[_COMMUNITY_Community 11|Community 11]] +- [[_COMMUNITY_Community 12|Community 12]] +- [[_COMMUNITY_Community 13|Community 13]] +- [[_COMMUNITY_Community 14|Community 14]] +- [[_COMMUNITY_Community 15|Community 15]] +- [[_COMMUNITY_Community 16|Community 16]] +- [[_COMMUNITY_Community 17|Community 17]] +- [[_COMMUNITY_Community 18|Community 18]] +- [[_COMMUNITY_Community 19|Community 19]] +- [[_COMMUNITY_Community 20|Community 20]] +- [[_COMMUNITY_Community 21|Community 21]] +- [[_COMMUNITY_Community 22|Community 22]] +- [[_COMMUNITY_Community 23|Community 23]] +- [[_COMMUNITY_Community 24|Community 24]] +- [[_COMMUNITY_Community 25|Community 25]] +- [[_COMMUNITY_Community 26|Community 26]] +- [[_COMMUNITY_Community 27|Community 27]] +- [[_COMMUNITY_Community 28|Community 28]] +- [[_COMMUNITY_Community 29|Community 29]] +- [[_COMMUNITY_Community 30|Community 30]] +- [[_COMMUNITY_Community 31|Community 31]] +- [[_COMMUNITY_Community 43|Community 43]] + +## God Nodes (most connected - your core abstractions) +1. `cn()` - 67 edges +2. `compilerOptions` - 19 edges +3. `Claude Code Guidance (CLAUDE.md)` - 19 edges +4. `Carousel` - 16 edges +5. `compilerOptions` - 14 edges +6. `SmartCrop26 Project Entry Point (AGENTS.md)` - 13 edges +7. `Pagination()` - 10 edges +8. `scripts` - 8 edges +9. `compilerOptions` - 8 edges +10. `CropSuggestion` - 8 edges + +## Surprising Connections (you probably didn't know these) +- `src/lib/crop-types.ts — Crop Type Definitions` --implements--> `parseConfig() — Multi-format Config Parser` [EXTRACTED] + src/lib/crop-types.ts → AGENTS.md +- `src/lib/crop-types.ts — Crop Type Definitions` --implements--> `PRESET_RATIOS — 12 Built-in Aspect Ratios` [EXTRACTED] + src/lib/crop-types.ts → AGENTS.md +- `src/lib/export-zip.ts — ZIP Export Pipeline` --references--> `JSZip — ZIP Generation Library` [EXTRACTED] + src/lib/export-zip.ts → CLAUDE.md +- `src/lib/export-zip.ts — ZIP Export Pipeline` --references--> `FileSaver — File Download Utility` [EXTRACTED] + src/lib/export-zip.ts → CLAUDE.md +- `src/lib/export-zip.ts — ZIP Export Pipeline` --references--> `Canvas API — Image Rendering & Export` [EXTRACTED] + src/lib/export-zip.ts → CLAUDE.md + +## Communities (44 total, 2 thin omitted) + +### Community 0 - "Community 0" +Cohesion: 0.04 +Nodes (52): dependencies, @azure/msal-browser, @azure/msal-react, class-variance-authority, cmdk, date-fns, embla-carousel-react, file-saver (+44 more) + +### Community 1 - "Community 1" +Cohesion: 0.05 +Nodes (36): useIsMobile(), Input, Separator, SheetContent, SheetContentProps, SheetDescription, SheetFooter(), SheetHeader() (+28 more) + +### Community 2 - "Community 2" +Cohesion: 0.11 +Nodes (21): CropPreviewCardProps, RatioSelectorProps, findBestCrop(), loadImage(), AspectRatioPreset, CropSuggestion, ImageFile, OutputSize (+13 more) + +### Community 3 - "Community 3" +Cohesion: 0.06 +Nodes (32): devDependencies, autoprefixer, eslint, @eslint/js, eslint-plugin-react-hooks, eslint-plugin-react-refresh, globals, jsdom (+24 more) + +### Community 4 - "Community 4" +Cohesion: 0.11 +Nodes (31): SmartCrop26 Project Entry Point (AGENTS.md), Claude Code Guidance (CLAUDE.md), Azure AD SSO via MSAL, Canvas API — Image Rendering & Export, CropSuggestion — Normalized 0-1 Coordinates, FileSaver — File Download Utility, Google Gemini 2.5 Flash AI Engine, JSZip — ZIP Generation Library (+23 more) + +### Community 5 - "Community 5" +Cohesion: 0.12 +Nodes (22): Action, ActionType, actionTypes, addToRemoveQueue(), dispatch(), genId(), listeners, memoryState (+14 more) + +### Community 6 - "Community 6" +Cohesion: 0.11 +Nodes (13): AuthGate(), loginRequest, queryClient, msalInstance, Card, CardContent, CardDescription, CardFooter (+5 more) + +### Community 7 - "Community 7" +Cohesion: 0.09 +Nodes (21): compilerOptions, allowImportingTsExtensions, isolatedModules, jsx, lib, module, moduleDetection, moduleResolution (+13 more) + +### Community 8 - "Community 8" +Cohesion: 0.12 +Nodes (18): AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter(), AlertDialogHeader(), AlertDialogOverlay, AlertDialogTitle (+10 more) + +### Community 9 - "Community 9" +Cohesion: 0.12 +Nodes (16): aliases, components, hooks, lib, ui, utils, rsc, $schema (+8 more) + +### Community 10 - "Community 10" +Cohesion: 0.12 +Nodes (14): Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut() (+6 more) + +### Community 11 - "Community 11" +Cohesion: 0.13 +Nodes (10): HoverCardContent, PopoverContent, RadioGroup, Skeleton(), Switch, Textarea, TextareaProps, ToggleGroup (+2 more) + +### Community 12 - "Community 12" +Cohesion: 0.12 +Nodes (15): compilerOptions, allowImportingTsExtensions, isolatedModules, lib, module, moduleDetection, moduleResolution, noEmit (+7 more) + +### Community 13 - "Community 13" +Cohesion: 0.15 +Nodes (10): FormControl, FormDescription, FormFieldContext, FormFieldContextValue, FormItem, FormItemContext, FormLabel, FormMessage (+2 more) + +### Community 14 - "Community 14" +Cohesion: 0.15 +Nodes (12): Carousel, CarouselApi, CarouselContent, CarouselContext, CarouselContextProps, CarouselItem, CarouselNext, CarouselOptions (+4 more) + +### Community 15 - "Community 15" +Cohesion: 0.17 +Nodes (11): compilerOptions, allowJs, noImplicitAny, noUnusedLocals, noUnusedParameters, paths, skipLibCheck, strictNullChecks (+3 more) + +### Community 16 - "Community 16" +Cohesion: 0.17 +Nodes (11): Menubar, MenubarCheckboxItem, MenubarContent, MenubarItem, MenubarLabel, MenubarRadioItem, MenubarSeparator, MenubarShortcut() (+3 more) + +### Community 17 - "Community 17" +Cohesion: 0.18 +Nodes (7): ChartConfig, ChartContainer, ChartContext, ChartContextProps, ChartLegendContent, ChartTooltipContent, THEMES + +### Community 18 - "Community 18" +Cohesion: 0.25 +Nodes (9): cn(), clsx, Breadcrumb, BreadcrumbEllipsis(), BreadcrumbItem, BreadcrumbPage, BreadcrumbSeparator(), ResizableHandle() (+1 more) + +### Community 19 - "Community 19" +Cohesion: 0.20 +Nodes (9): DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut(), DropdownMenuSubContent (+1 more) + +### Community 20 - "Community 20" +Cohesion: 0.20 +Nodes (9): ContextMenuCheckboxItem, ContextMenuContent, ContextMenuItem, ContextMenuLabel, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut(), ContextMenuSubContent (+1 more) + +### Community 21 - "Community 21" +Cohesion: 0.22 +Nodes (8): Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow + +### Community 22 - "Community 22" +Cohesion: 0.25 +Nodes (6): DrawerContent, DrawerDescription, DrawerFooter(), DrawerHeader(), DrawerOverlay, DrawerTitle + +### Community 23 - "Community 23" +Cohesion: 0.25 +Nodes (7): SelectContent, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger + +### Community 24 - "Community 24" +Cohesion: 0.40 +Nodes (4): Alert, AlertDescription, AlertTitle, alertVariants + +### Community 25 - "Community 25" +Cohesion: 0.40 +Nodes (4): InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot + +### Community 26 - "Community 26" +Cohesion: 0.50 +Nodes (3): AccordionContent, AccordionItem, AccordionTrigger + +### Community 27 - "Community 27" +Cohesion: 0.50 +Nodes (3): Avatar, AvatarFallback, AvatarImage + +### Community 28 - "Community 28" +Cohesion: 0.67 +Nodes (3): Badge(), BadgeProps, badgeVariants + +### Community 29 - "Community 29" +Cohesion: 0.50 +Nodes (4): NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuViewport + +### Community 30 - "Community 30" +Cohesion: 0.50 +Nodes (3): TabsContent, TabsList, TabsTrigger + +## Knowledge Gaps +- **321 isolated node(s):** `target`, `lib`, `module`, `skipLibCheck`, `moduleResolution` (+316 more) + These have ≤1 connection - possible missing edges or undocumented components. +- **2 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes. + +## Suggested Questions +_Questions this graph is uniquely positioned to answer:_ + +- **Why does `cn()` connect `Community 18` to `Community 1`, `Community 2`, `Community 5`, `Community 6`, `Community 8`, `Community 10`, `Community 11`, `Community 13`, `Community 14`, `Community 16`, `Community 17`, `Community 19`, `Community 20`, `Community 21`, `Community 22`, `Community 23`, `Community 24`, `Community 25`, `Community 26`, `Community 27`, `Community 28`, `Community 29`, `Community 30`, `Community 31`?** + _High betweenness centrality (0.464) - this node is a cross-community bridge._ +- **Why does `dependencies` connect `Community 0` to `Community 18`, `Community 3`?** + _High betweenness centrality (0.314) - this node is a cross-community bridge._ +- **Why does `clsx` connect `Community 18` to `Community 0`?** + _High betweenness centrality (0.282) - this node is a cross-community bridge._ +- **What connects `target`, `lib`, `module` to the rest of the system?** + _321 weakly-connected nodes found - possible documentation gaps or missing edges._ +- **Should `Community 0` be split into smaller, more focused modules?** + _Cohesion score 0.038461538461538464 - nodes in this community are weakly interconnected._ +- **Should `Community 1` be split into smaller, more focused modules?** + _Cohesion score 0.05204872646733112 - nodes in this community are weakly interconnected._ +- **Should `Community 2` be split into smaller, more focused modules?** + _Cohesion score 0.1126984126984127 - nodes in this community are weakly interconnected._ \ No newline at end of file diff --git a/wiki/architecture/social-reporting-tool-structure.md b/wiki/architecture/social-reporting-tool-structure.md new file mode 100644 index 0000000..942342d --- /dev/null +++ b/wiki/architecture/social-reporting-tool-structure.md @@ -0,0 +1,124 @@ +--- +tags: [architecture, graphify, social-reporting-tool] +updated: 2026-05-18 +--- + +# Graph Report - /Users/ai_leed/Documents/Projects/Oliver/social-reporting-tool (2026-05-18) + +## Corpus Check +- cluster-only mode — file stats not available + +## Summary +- 328 nodes · 604 edges · 13 communities +- Extraction: 95% EXTRACTED · 5% INFERRED · 0% AMBIGUOUS · INFERRED: 33 edges (avg confidence: 0.93) +- Token cost: 0 input · 0 output + +## Graph Freshness +- Built from commit: `54eddd70` +- Run `git rev-parse HEAD` and compare to check if the graph is stale. +- Run `graphify update .` after code changes (no API cost). + +## Community Hubs (Navigation) +- [[_COMMUNITY_Community 0|Community 0]] +- [[_COMMUNITY_Community 1|Community 1]] +- [[_COMMUNITY_Community 2|Community 2]] +- [[_COMMUNITY_Community 3|Community 3]] +- [[_COMMUNITY_Community 4|Community 4]] +- [[_COMMUNITY_Community 5|Community 5]] +- [[_COMMUNITY_Community 6|Community 6]] +- [[_COMMUNITY_Community 7|Community 7]] +- [[_COMMUNITY_Community 8|Community 8]] +- [[_COMMUNITY_Community 9|Community 9]] +- [[_COMMUNITY_Community 10|Community 10]] + +## God Nodes (most connected - your core abstractions) +1. `Security Audit Report` - 30 edges +2. `runPipeline()` - 19 edges +3. `Pipeline Orchestrator (pipeline-v2.ts)` - 14 edges +4. `ClientBrief` - 13 edges +5. `compilerOptions` - 12 edges +6. `runStage3()` - 11 edges +7. `Dashboard HTTP+SSE Server (server.ts)` - 11 edges +8. `TypeScript Types (types-v2.ts)` - 11 edges +9. `Social Listening Platform Overview` - 11 edges +10. `Stage 5: Enrichment Scrape (stage5-enrichment-scrape.ts)` - 11 edges + +## Surprising Connections (you probably didn't know these) +- `Frontend UI (frontend/index.html)` --semantically_similar_to--> `Dashboard UI (agents/social-listening/dashboard/index.html)` [INFERRED] [semantically similar] + frontend/index.html → agents/social-listening/dashboard/index.html +- `Social Listening Platform Overview` --references--> `Social Listening Pipeline` [INFERRED] + DEVELOPER_BRIEF.md → README.md +- `Social Listening App Service` --shares_data_with--> `PostgreSQL Database` [INFERRED] + docker-compose.yml → README.md +- `Dashboard UI (agents/social-listening/dashboard/index.html)` --references--> `Dashboard HTTP+SSE Server (server.ts)` [INFERRED] + agents/social-listening/dashboard/index.html → AGENTS.md +- `POST /api/login Endpoint` --references--> `Dashboard HTTP+SSE Server (server.ts)` [INFERRED] + frontend/login.html → AGENTS.md + +## Communities (13 total, 0 thin omitted) + +### Community 0 - "Community 0" +Cohesion: 0.06 +Nodes (40): base64urlDecode(), BRIEFS_DIR, getAzureSigningKeys(), getSessionData(), handleRunPipeline(), isAuthenticated(), loginAttempts, OUTPUTS_DIR (+32 more) + +### Community 1 - "Community 1" +Cohesion: 0.05 +Nodes (50): Apache Config (apache-social-reports.conf), Apify Client (apify.ts), PostgreSQL Client (db.ts), Static Frontend (frontend/), Project Entry Point (AGENTS.md), Pipeline CLI Runner (run.ts), Dashboard HTTP+SSE Server (server.ts), Server Setup Script (setup.sh) (+42 more) + +### Community 2 - "Community 2" +Cohesion: 0.08 +Nodes (33): ACTORS, APIFY_COST_LIMIT, ApifyRunResult, __dirname, fileEnv, __filename, getApifyCost(), getApifyCostLimit() (+25 more) + +### Community 3 - "Community 3" +Cohesion: 0.12 +Nodes (28): callClaudeJSON(), parseJSONResponse(), AgentReview, AudienceInsight, ClientBrief, CreatorSpotlight, DeskResearchSource, DiscoveryData (+20 more) + +### Community 4 - "Community 4" +Cohesion: 0.12 +Nodes (33): Pipeline Orchestrator (pipeline-v2.ts), TypeScript Types (types-v2.ts), AgentReview Interface, Claude CLI Wrapper (claude-cli.ts), ClientBrief Interface, DeskResearchSource Interface, DiscoveryData Interface, Engagement Score Formula (+25 more) + +### Community 5 - "Community 5" +Cohesion: 0.14 +Nodes (25): instagram, buildMarkdown(), deriveFormatCards(), esc(), extractInstagramShortcode(), extractTikTokVideoId(), extractYouTubeId(), formatDateRange() (+17 more) + +### Community 6 - "Community 6" +Cohesion: 0.16 +Nodes (19): ApiContentBlock, ApiMessage, ApiResponse, calculateCost(), callApi(), callClaude(), callClaudeVision(), callClaudeWithUsage() (+11 more) + +### Community 7 - "Community 7" +Cohesion: 0.12 +Nodes (15): dependencies, postgres, tsx, typescript, devDependencies, @types/node, name, private (+7 more) + +### Community 8 - "Community 8" +Cohesion: 0.13 +Nodes (14): compilerOptions, declaration, esModuleInterop, module, moduleResolution, outDir, resolveJsonModule, rootDir (+6 more) + +### Community 9 - "Community 9" +Cohesion: 0.17 +Nodes (12): Saved Briefs Tab, Live Cost Tracker UI, Help Tab, Run History Tab, Dashboard UI (agents/social-listening/dashboard/index.html), Pipeline Tab, Stage Progress Section, Frontend Saved Briefs Tab (+4 more) + +### Community 10 - "Community 10" +Cohesion: 0.18 +Nodes (10): category, clientName, dateRange, from, to, hashtags, influencers, tiktok (+2 more) + +## Knowledge Gaps +- **101 isolated node(s):** `name`, `version`, `type`, `private`, `pipeline` (+96 more) + These have ≤1 connection - possible missing edges or undocumented components. + +## Suggested Questions +_Questions this graph is uniquely positioned to answer:_ + +- **Why does `instagram` connect `Community 5` to `Community 10`?** + _High betweenness centrality (0.038) - this node is a cross-community bridge._ +- **Why does `Security Audit Report` connect `Community 1` to `Community 4`?** + _High betweenness centrality (0.038) - this node is a cross-community bridge._ +- **Why does `ClientBrief` connect `Community 3` to `Community 0`, `Community 2`, `Community 5`?** + _High betweenness centrality (0.036) - this node is a cross-community bridge._ +- **Are the 13 inferred relationships involving `Pipeline Orchestrator (pipeline-v2.ts)` (e.g. with `Pipeline CLI Runner (run.ts)` and `TypeScript Types (types-v2.ts)`) actually correct?** + _`Pipeline Orchestrator (pipeline-v2.ts)` has 13 INFERRED edges - model-reasoned connections that need verification._ +- **What connects `name`, `version`, `type` to the rest of the system?** + _111 weakly-connected nodes found - possible documentation gaps or missing edges._ +- **Should `Community 0` be split into smaller, more focused modules?** + _Cohesion score 0.061683599419448475 - nodes in this community are weakly interconnected._ +- **Should `Community 1` be split into smaller, more focused modules?** + _Cohesion score 0.05333333333333334 - nodes in this community are weakly interconnected._ \ No newline at end of file diff --git a/wiki/architecture/solventum-image-metadata-structure.md b/wiki/architecture/solventum-image-metadata-structure.md new file mode 100644 index 0000000..3298f6c --- /dev/null +++ b/wiki/architecture/solventum-image-metadata-structure.md @@ -0,0 +1,446 @@ +--- +tags: [architecture, graphify, solventum-image-metadata] +updated: 2026-05-18 +--- + +# Graph Report - /Users/ai_leed/Documents/Projects/Oliver/solventum-image-metadata (2026-05-18) + +## Corpus Check +- cluster-only mode — file stats not available + +## Summary +- 1188 nodes · 1725 edges · 111 communities (80 shown, 31 thin omitted) +- Extraction: 92% EXTRACTED · 8% INFERRED · 0% AMBIGUOUS · INFERRED: 130 edges (avg confidence: 0.75) +- Token cost: 0 input · 0 output + +## Graph Freshness +- Built from commit: `54eddd70` +- Run `git rev-parse HEAD` and compare to check if the graph is stale. +- Run `graphify update .` after code changes (no API cost). + +## Community Hubs (Navigation) +- [[_COMMUNITY_Community 0|Community 0]] +- [[_COMMUNITY_Community 1|Community 1]] +- [[_COMMUNITY_Community 2|Community 2]] +- [[_COMMUNITY_Community 3|Community 3]] +- [[_COMMUNITY_Community 4|Community 4]] +- [[_COMMUNITY_Community 5|Community 5]] +- [[_COMMUNITY_Community 6|Community 6]] +- [[_COMMUNITY_Community 7|Community 7]] +- [[_COMMUNITY_Community 8|Community 8]] +- [[_COMMUNITY_Community 9|Community 9]] +- [[_COMMUNITY_Community 10|Community 10]] +- [[_COMMUNITY_Community 11|Community 11]] +- [[_COMMUNITY_Community 12|Community 12]] +- [[_COMMUNITY_Community 13|Community 13]] +- [[_COMMUNITY_Community 14|Community 14]] +- [[_COMMUNITY_Community 15|Community 15]] +- [[_COMMUNITY_Community 16|Community 16]] +- [[_COMMUNITY_Community 17|Community 17]] +- [[_COMMUNITY_Community 18|Community 18]] +- [[_COMMUNITY_Community 19|Community 19]] +- [[_COMMUNITY_Community 20|Community 20]] +- [[_COMMUNITY_Community 21|Community 21]] +- [[_COMMUNITY_Community 22|Community 22]] +- [[_COMMUNITY_Community 23|Community 23]] +- [[_COMMUNITY_Community 24|Community 24]] +- [[_COMMUNITY_Community 25|Community 25]] +- [[_COMMUNITY_Community 26|Community 26]] +- [[_COMMUNITY_Community 27|Community 27]] +- [[_COMMUNITY_Community 28|Community 28]] +- [[_COMMUNITY_Community 29|Community 29]] +- [[_COMMUNITY_Community 30|Community 30]] +- [[_COMMUNITY_Community 31|Community 31]] +- [[_COMMUNITY_Community 32|Community 32]] +- [[_COMMUNITY_Community 33|Community 33]] +- [[_COMMUNITY_Community 34|Community 34]] +- [[_COMMUNITY_Community 35|Community 35]] +- [[_COMMUNITY_Community 36|Community 36]] +- [[_COMMUNITY_Community 37|Community 37]] +- [[_COMMUNITY_Community 38|Community 38]] +- [[_COMMUNITY_Community 39|Community 39]] +- [[_COMMUNITY_Community 40|Community 40]] +- [[_COMMUNITY_Community 41|Community 41]] +- [[_COMMUNITY_Community 42|Community 42]] +- [[_COMMUNITY_Community 43|Community 43]] +- [[_COMMUNITY_Community 44|Community 44]] +- [[_COMMUNITY_Community 45|Community 45]] +- [[_COMMUNITY_Community 46|Community 46]] +- [[_COMMUNITY_Community 47|Community 47]] +- [[_COMMUNITY_Community 48|Community 48]] +- [[_COMMUNITY_Community 49|Community 49]] +- [[_COMMUNITY_Community 50|Community 50]] +- [[_COMMUNITY_Community 51|Community 51]] +- [[_COMMUNITY_Community 52|Community 52]] +- [[_COMMUNITY_Community 53|Community 53]] +- [[_COMMUNITY_Community 54|Community 54]] +- [[_COMMUNITY_Community 55|Community 55]] +- [[_COMMUNITY_Community 56|Community 56]] +- [[_COMMUNITY_Community 57|Community 57]] +- [[_COMMUNITY_Community 58|Community 58]] +- [[_COMMUNITY_Community 59|Community 59]] +- [[_COMMUNITY_Community 60|Community 60]] +- [[_COMMUNITY_Community 61|Community 61]] +- [[_COMMUNITY_Community 62|Community 62]] +- [[_COMMUNITY_Community 63|Community 63]] +- [[_COMMUNITY_Community 64|Community 64]] +- [[_COMMUNITY_Community 65|Community 65]] +- [[_COMMUNITY_Community 66|Community 66]] +- [[_COMMUNITY_Community 67|Community 67]] +- [[_COMMUNITY_Community 68|Community 68]] +- [[_COMMUNITY_Community 69|Community 69]] +- [[_COMMUNITY_Community 70|Community 70]] +- [[_COMMUNITY_Community 71|Community 71]] +- [[_COMMUNITY_Community 72|Community 72]] +- [[_COMMUNITY_Community 73|Community 73]] +- [[_COMMUNITY_Community 74|Community 74]] +- [[_COMMUNITY_Community 75|Community 75]] +- [[_COMMUNITY_Community 82|Community 82]] +- [[_COMMUNITY_Community 88|Community 88]] +- [[_COMMUNITY_Community 89|Community 89]] +- [[_COMMUNITY_Community 90|Community 90]] +- [[_COMMUNITY_Community 91|Community 91]] +- [[_COMMUNITY_Community 92|Community 92]] +- [[_COMMUNITY_Community 93|Community 93]] +- [[_COMMUNITY_Community 94|Community 94]] +- [[_COMMUNITY_Community 95|Community 95]] +- [[_COMMUNITY_Community 96|Community 96]] +- [[_COMMUNITY_Community 97|Community 97]] +- [[_COMMUNITY_Community 98|Community 98]] +- [[_COMMUNITY_Community 99|Community 99]] +- [[_COMMUNITY_Community 100|Community 100]] +- [[_COMMUNITY_Community 101|Community 101]] +- [[_COMMUNITY_Community 102|Community 102]] +- [[_COMMUNITY_Community 103|Community 103]] +- [[_COMMUNITY_Community 104|Community 104]] +- [[_COMMUNITY_Community 105|Community 105]] +- [[_COMMUNITY_Community 106|Community 106]] +- [[_COMMUNITY_Community 107|Community 107]] +- [[_COMMUNITY_Community 108|Community 108]] +- [[_COMMUNITY_Community 109|Community 109]] +- [[_COMMUNITY_Community 110|Community 110]] + +## God Nodes (most connected - your core abstractions) +1. `Oliver Metadata Tool v3.1` - 40 edges +2. `Database` - 28 edges +3. `SessionStore` - 23 edges +4. `web_app.py (Flask Entry Point)` - 23 edges +5. `MetadataProcessor` - 19 edges +6. `ExifToolUpdater` - 18 edges +7. `sanitize_metadata_value()` - 17 edges +8. `PDFExtractor` - 16 edges +9. `OfficeExtractor` - 16 edges +10. `OfficeUpdater` - 16 edges + +## Surprising Connections (you probably didn't know these) +- `create_user_session()` --shares_data_with--> `sessions Table` [INFERRED] + src/auth.py → docs/project/database_schema.md +- `SQLite Database (oliver_metadata.db)` --semantically_similar_to--> `Oliver Metadata Tool v3.1` [EXTRACTED] [semantically similar] + docs/project/architecture.md → CLAUDE.md +- `Unified metadata updater using ExifTool for images, video, and PDF files.` --rationale_for--> `ExifToolUpdater` [EXTRACTED] + src/updaters/exiftool_updater.py → CLAUDE.md +- `Update metadata using ExifTool. Supports images (JPEG, PNG, GIF, TIFF, HEIC` --rationale_for--> `ExifToolUpdater` [EXTRACTED] + src/updaters/exiftool_updater.py → CLAUDE.md +- `Office document metadata updater.` --rationale_for--> `OfficeUpdater` [EXTRACTED] + src/updaters/office_updater.py → CLAUDE.md + +## Communities (111 total, 31 thin omitted) + +### Community 0 - "Community 0" +Cohesion: 0.06 +Nodes (59): actions, addCustomField(), applyTemplate(), autoSelectImportColumns(), buildImportPreviewTable(), closeCreateTemplateModal(), closeImportMappingModal(), confirmImportMapping() (+51 more) + +### Community 1 - "Community 1" +Cohesion: 0.06 +Nodes (59): ADR: ExifTool as Primary Metadata Handler, ADR: Migrate from Flask to FastAPI, API Specification, AI Service (app/services/ai_service.py), Apache Reverse Proxy, ExifTool Extractor (src/extractors/exiftool_extractor.py), ExifTool Updater (src/updaters/exiftool_updater.py), FileDetector (+51 more) + +### Community 2 - "Community 2" +Cohesion: 0.05 +Nodes (30): Add a processed file entry to a session. If a file with the same filena, Update specific fields of a file entry within a session., Persistent session store replacing in-memory dicts. Stores file processing, Get just the files list from a session., Delete a file session., Get all active session IDs for a user., Create an import/excel session., Get import session by ID. (+22 more) + +### Community 3 - "Community 3" +Cohesion: 0.06 +Nodes (32): apply_template(), delete_template(), _get_template_manager(), list_templates(), load_template(), preview_template(), Template management router: list, save, load, delete, apply, preview., Apply a template to generate metadata for files. (+24 more) + +### Community 4 - "Community 4" +Cohesion: 0.08 +Nodes (23): Database, Add role column if it doesn't exist (for existing databases)., SQLite database manager for Oliver Metadata Tool. Uses connection-per-opera, Create test user (tester/oliveradmin) if doesn't exist., Create or promote superadmin user (case-insensitive match)., Get user by username., Create a new user. Returns user ID if successful., Update user's last login timestamp. (+15 more) + +### Community 5 - "Community 5" +Cohesion: 0.06 +Nodes (26): Enum, detect_file_type(), FileType, is_supported(), File type detection and routing., Detect file type and route to appropriate handlers., Supported file types., AI-powered metadata analysis using OpenAI GPT with production-ready features. (+18 more) + +### Community 6 - "Community 6" +Cohesion: 0.06 +Nodes (27): src/config.py, ExifTool, ExifToolExtractor, ExifToolUpdater, ADR: ExifTool Primary Handler, ExifTool (System Tool), ExifToolHelper, ExifTool Setup Guide (+19 more) + +### Community 7 - "Community 7" +Cohesion: 0.08 +Nodes (33): BaseModel, DownloadSelectedRequest, ExcelMappingRequest, ExcelSheetPreviewRequest, ImportMappingRequest, Pydantic request models with validation., Request to update file with manually entered metadata., Request to preview a specific Excel sheet. (+25 more) + +### Community 8 - "Community 8" +Cohesion: 0.07 +Nodes (18): cleanup_expired_sessions() function, MicrosoftSSO, Framework-agnostic authentication service., Microsoft SSO handler. Frontend uses MSAL.js for auth, backend validates via Gra, Authentication logic extracted from src/auth.py, without Flask dependencies., Authenticate user with username and password. Returns dict with 'succes, Create a new auth session for an authenticated user., Destroy an auth session (logout). (+10 more) + +### Community 9 - "Community 9" +Cohesion: 0.08 +Nodes (27): login_required / get_current_user Dependency, auth_callback(), login(), login_microsoft(), logout(), Clean up files associated with a session. Removes uploaded files from disk t, Login page and handler., Logout user and cleanup session files. (+19 more) + +### Community 10 - "Community 10" +Cohesion: 0.11 +Nodes (10): Admin service: user management, audit log, AI usage stats., Get combined statistics for admin dashboard., Business logic for admin operations., Get all users with sanitized output (no password hashes)., Get single user by ID., Update user fields (role, is_active, full_name, email)., Deactivate a user account., Get audit log with optional filters. (+2 more) + +### Community 11 - "Community 11" +Cohesion: 0.10 +Nodes (18): Sanitize filename while preserving Unicode characters (CJK, etc.)., cleanup_old_files(), configure_excel_mapping(), configure_import_mapping(), download_file(), import_metadata(), list_templates(), open_browser() (+10 more) + +### Community 12 - "Community 12" +Cohesion: 0.09 +Nodes (13): Tests for authentication endpoints., Unauthenticated access to / redirects to /login., POST /login with valid credentials redirects to /., POST /login with wrong password shows error., POST /login with empty fields shows error., GET /logout redirects to /login., / requires authentication., GET /login returns login form. (+5 more) + +### Community 13 - "Community 13" +Cohesion: 0.10 +Nodes (21): get_current_admin Dependency, MSAL OAuth2 (Microsoft Azure AD SSO), Oliver Metadata Tool v3.1, AUD-03: Admins can query audit log and AI usage via admin dashboard, AUTH-01: Users must authenticate before accessing any feature, AUTH-03: Microsoft Azure AD SSO optional, AUTH-05: Admin role grants access to user management and audit log, AUTH-06: Superadmin promoted from SUPERADMIN_EMAIL env var (+13 more) + +### Community 14 - "Community 14" +Cohesion: 0.12 +Nodes (11): ImageExtractor, Image content and metadata extractor., Read EXIF metadata from image. Args: file_path: Path to ima, Read IPTC metadata from image. Args: file_path: Path to ima, Extractor for image files (JPEG, PNG, etc.) with OCR and EXIF metadata., Initialize image extractor., Extract text content from image using OCR. Uses pytesseract to perform, Read image metadata from EXIF and IPTC data. Extracts standard image me (+3 more) + +### Community 15 - "Community 15" +Cohesion: 0.13 +Nodes (13): BaseUpdater, PDFUpdater, VideoUpdater, Initialize the processor. Args: preview_mode: If True, show, create_backup(), Create a backup of the file before modification. Args: file_path: P, PDF metadata updater., Updater for PDF file metadata. (+5 more) + +### Community 16 - "Community 16" +Cohesion: 0.14 +Nodes (11): OfficeExtractor, Office document content and metadata extractor., Extract text content from PPTX file., Read metadata from DOCX file., Extractor for Office files (DOCX, XLSX, PPTX)., Read metadata from XLSX file., Read metadata from PPTX file., Extract text content from Office document. Routes to appropriate extrac (+3 more) + +### Community 17 - "Community 17" +Cohesion: 0.12 +Nodes (12): Upload Excel file for metadata lookup — returns sheet structure for mapping., upload_excel(), Upload Excel file for Excel Lookup metadata source., Excel-based metadata lookup service., Lookup metadata by filename (ignoring extension). Args: fil, Lookup metadata from Excel spreadsheet by filename., Search metadata by Celum ID. Args: celum_id: Celum ID to se, Initialize the lookup service. Args: excel_path: Path to th (+4 more) + +### Community 18 - "Community 18" +Cohesion: 0.12 +Nodes (10): ABC, BaseExtractor, BaseUpdater, Base class for all content extractors., Truncate content to maximum length for AI processing. Args:, Clean extracted text (remove excessive whitespace, etc.). Args:, Abstract base class for content extractors., Base class for all metadata updaters. (+2 more) + +### Community 19 - "Community 19" +Cohesion: 0.21 +Nodes (13): closeCreateUserModal(), createUser(), loadAiUsage(), loadAuditLog(), loadUsers(), populateAuditUserFilter(), renderAiStats(), renderAiUsageTable() (+5 more) + +### Community 20 - "Community 20" +Cohesion: 0.13 +Nodes (14): get_settings(), Get cached settings instance., init_dependencies(), Initialize singleton dependencies. Called once from app lifespan., create_app(), lifespan(), FastAPI application factory with lifespan management., Startup/shutdown lifecycle. (+6 more) + +### Community 21 - "Community 21" +Cohesion: 0.16 +Nodes (15): Handle multiple file uploads with metadata source selection., upload_files(), generate_metadata_async(), _get_analyzer(), get_progress_queue(), process_bulk_ai(), Async wrapper around MetadataAnalyzer for non-blocking AI generation., Process multiple files with AI in background, sending progress via SSE. Arg (+7 more) + +### Community 22 - "Community 22" +Cohesion: 0.14 +Nodes (9): Preview file structure and suggest field mappings., preview_import(), Metadata importer for external files (CSV, Excel, JSON)., Import metadata from various file formats (CSV, Excel, JSON)., Normalize metadata dictionary to standard format. Args: met, Get metadata for a specific file from imported map. Args: m, Validate imported metadata and return statistics. Args: met, Import file with custom field mapping. Args: file_path: Pat (+1 more) + +### Community 23 - "Community 23" +Cohesion: 0.16 +Nodes (9): PDFExtractor, PDF content extractor., Extract text using pdfplumber library. Args: file_path: Pat, Extract text using OCR via pdf2image and pytesseract. Args:, Read PDF metadata from document properties. Extracts standard PDF metad, Extractor for PDF files with fallback to OCR., Initialize PDF extractor., Extract text content from PDF using multiple fallback strategies. First (+1 more) + +### Community 24 - "Community 24" +Cohesion: 0.24 +Nodes (13): OfficeUpdater, Sanitize and truncate metadata value. Args: value: Metadata value, sanitize_metadata_value(), Office document metadata updater., Update XLSX metadata., Update PPTX metadata., Updater for Office file metadata (DOCX, XLSX, PPTX)., Verify that metadata was written correctly to Office document. Args: (+5 more) + +### Community 25 - "Community 25" +Cohesion: 0.21 +Nodes (13): get_database(), Get Database instance., create_user(), _get_admin_service(), get_ai_usage(), get_audit_log(), list_users(), Admin router: user management, audit log, AI usage stats. (+5 more) + +### Community 26 - "Community 26" +Cohesion: 0.13 +Nodes (8): Tests for template management endpoints., POST /templates/save creates a new template., GET /templates/load/{name} loads a template., GET /templates/load/{name} returns 404 for missing template., POST /templates/save with empty name returns error., DELETE /templates/delete/{name} removes a template., GET /templates/list returns template list., POST /templates/preview returns preview output. + +### Community 27 - "Community 27" +Cohesion: 0.15 +Nodes (10): Application settings via pydantic-settings., download_selected_files(), Download router: single file, ZIP batch, session cleanup., Download selected files from session as ZIP archive., get_session_files(), Metadata router: update, manual update, stats., Get current state of files in a session (for polling AI progress)., Update file with manually entered metadata. (+2 more) + +### Community 28 - "Community 28" +Cohesion: 0.37 +Nodes (13): build(), check_docker(), clean(), logs(), print_error(), print_header(), print_info(), print_success() (+5 more) + +### Community 29 - "Community 29" +Cohesion: 0.15 +Nodes (12): Validate that filepath is within upload folder (prevent traversal)., create_report_entry(), format_metadata_comparison(), get_file_size_mb(), get_logger(), Utility functions for backup, logging, and file operations., Validate file path exists and is accessible. Args: file_path: Path, Get file size in MB. Args: file_path: Path to file Returns: (+4 more) + +### Community 30 - "Community 30" +Cohesion: 0.19 +Nodes (13): authenticate_user() function, SQLite Database (oliver_metadata.db), SQLite WAL Mode, ai_usage Table, audit_log Table, Database Class (src/database.py), oliver_sessions.db, sessions Table (+5 more) + +### Community 31 - "Community 31" +Cohesion: 0.18 +Nodes (12): get_auth_service(), get_current_admin(), get_session_store(), FastAPI dependency injection providers., Get SessionStore instance., Get AuthService instance., FastAPI dependency: require authenticated user. Replaces Flask's @login_req, Same as get_current_user but returns None instead of raising. (+4 more) + +### Community 32 - "Community 32" +Cohesion: 0.18 +Nodes (7): File handling: upload, naming, cleanup., Handles file uploads, per-user storage, and cleanup., Save an uploaded file to disk using streaming. Returns the path to the, Delete a file from disk., Delete all files for a user., Resolve filepath from filename. Checks user dir first, then root., safe_filename() + +### Community 33 - "Community 33" +Cohesion: 0.17 +Nodes (7): Field mapping with automatic detection and manual override., Validate a field mapping configuration. Args: mapping: Dict, Map source fields to standard metadata fields with fuzzy matching., Apply field mapping to transform source data to standard format. Args:, Initialize field mapper. Args: presets_path: Path to JSON f, Automatically map source fields to standard fields using fuzzy matching., Find best matching standard field for source field. Args: s + +### Community 34 - "Community 34" +Cohesion: 0.15 +Nodes (7): Tests for admin endpoints., GET /admin returns 403 for non-admin users., GET /admin/users returns 403 for non-admin users., GET /admin/audit returns 403 for non-admin users., GET /admin/ai-usage returns 403 for non-admin users., GET /admin requires authentication., TestAdminAccess + +### Community 35 - "Community 35" +Cohesion: 0.20 +Nodes (8): BaseExtractor, VideoExtractor, Video metadata extractor., Read video metadata using pymediainfo. Args: file_path: Pat, Extractor for video files (MP4, MOV, AVI) - metadata extraction only., Extract text content from video (not supported). Video files cannot be, Read metadata from video file using mutagen. Extracts standard video me, Read video metadata using mutagen. Args: file_path: Path to + +### Community 36 - "Community 36" +Cohesion: 0.23 +Nodes (7): ImageUpdater, Image metadata updater., Update PNG metadata using PIL. Args: file_path: Path to PNG, Updater for image file metadata (JPEG, PNG)., Verify JPEG metadata., Update image metadata using EXIF for JPEG and PIL for PNG. Args:, Update JPEG metadata using EXIF. Args: file_path: Path to J + +### Community 37 - "Community 37" +Cohesion: 0.17 +Nodes (11): ExcelMetadataLookup, FieldMapper, FileDetector, FileType Enum, Flask Framework, MetadataAnalyzer, MetadataImporter, OpenAI API (+3 more) + +### Community 38 - "Community 38" +Cohesion: 0.21 +Nodes (11): detect_file(), extract_content(), extract_metadata(), process_uploaded_file(), Metadata processing orchestration: upload → detect → extract → generate., Process a single uploaded file through the full pipeline. Args: fil, Detect the type of a file., Read current metadata from file. (+3 more) + +### Community 39 - "Community 39" +Cohesion: 0.17 +Nodes (11): auth_client(), client(), Test fixtures for Oliver Metadata Tool., Create a temporary directory for test artifacts., Create test HTTP client., Authenticated test client (logged in as tester)., Create a minimal PDF for testing., Create a sample CSV for import testing. (+3 more) + +### Community 40 - "Community 40" +Cohesion: 0.27 +Nodes (7): main(), MetadataProcessor, Process all supported files in a directory. Args: directory, Save processing report to CSV., Main CLI entry point., Main processor for metadata automation., Process a single file. Args: file_path: Path to the file + +### Community 41 - "Community 41" +Cohesion: 0.18 +Nodes (11): docs/project/database_schema.md, docs/project/infrastructure.md, docker-run.sh (Helper Script), nginx Reverse Proxy, Docker Volume: database, Docker Network: oliver-metadata-network, oliver-metadata Docker Service, Docker Volume: output (+3 more) + +### Community 42 - "Community 42" +Cohesion: 0.20 +Nodes (11): app/main.py (FastAPI Entry Point), app/routers/auth.py, app/routers/downloads.py, app/routers/upload.py, Microsoft SSO (Azure AD / OAuth2), src/auth.py, FastAPI, gunicorn (+3 more) + +### Community 43 - "Community 43" +Cohesion: 0.18 +Nodes (6): Tests for upload endpoints., POST /upload with manual source processes file., API response should not expose server file paths., POST /upload-excel requires authentication., POST /upload with no files returns error., TestUpload + +### Community 44 - "Community 44" +Cohesion: 0.49 +Nodes (9): create_parser(), dumpallobjs(), dumpoutline(), dumppdf(), dumptrailers(), dumpxml(), escape(), extractembedded() (+1 more) + +### Community 45 - "Community 45" +Cohesion: 0.20 +Nodes (10): src/config.py, src/excel_metadata_lookup.py, src/field_mapper.py, src/metadata_importer.py, src/template_manager.py, templates/index.html, templates/login.html, web_app.py (Flask Entry Point) (+2 more) + +### Community 46 - "Community 46" +Cohesion: 0.20 +Nodes (5): Parse pandas DataFrame into metadata map. Args: df: DataFra, Import metadata from CSV file. Expected columns: filename, title, subjec, Detect column name from a list of candidates (case-insensitive). Args:, Get value from row, handling None column and NaN values. Args:, Import metadata from Excel file. Args: excel_path: Path to + +### Community 47 - "Community 47" +Cohesion: 0.28 +Nodes (9): src/updaters/ (Metadata Write Layer), ExifTool (System Dependency), src/extractors/exiftool_extractor.py, src/updaters/exiftool_updater.py, src/updaters/image_updater.py, src/updaters/office_updater.py, src/updaters/pdf_updater.py, src/updaters/video_updater.py (+1 more) + +### Community 48 - "Community 48" +Cohesion: 0.22 +Nodes (9): ADR: FastAPI Migration, project/api_spec.md, project/architecture.md, Documentation Hub, project/infrastructure.md, project/requirements.md, project/runbook.md, tasks/README.md (+1 more) + +### Community 49 - "Community 49" +Cohesion: 0.22 +Nodes (7): auth_azure_token(), login_submit(), logout(), Authentication router: login, logout, Microsoft SSO., Logout and destroy session., Validate Azure AD access token from client-side MSAL.js. Frontend handles t, Process login form. Rate limited to 5 attempts per minute. + +### Community 50 - "Community 50" +Cohesion: 0.25 +Nodes (8): ExcelMetadataLookup Service, File Service (app/services/file_service.py), safe_filename() function, Services Layer (app/services/), TemplateManager Service, SRC-04: Templates with variable substitution, SRC-05: Excel lookup against pre-loaded mapping file, UP-04: Preserve Unicode filenames including CJK characters + +### Community 51 - "Community 51" +Cohesion: 0.25 +Nodes (5): Application settings loaded from environment variables and .env file., Settings, BaseSettings, _ExcelLookupAdapter, Wraps a metadata_map dict to behave like ExcelMetadataLookup. + +### Community 52 - "Community 52" +Cohesion: 0.32 +Nodes (7): configure_import_mapping(), _get_file_service(), import_metadata(), preview_import(), Import router: import metadata from CSV/Excel/JSON files., Upload import file and preview structure for mapping., Configure import column mapping and load metadata. + +### Community 53 - "Community 53" +Cohesion: 0.33 +Nodes (7): app/services/ai_service.py, OpenAI gpt-5.2 (Responses API), OpenAI API (gpt-4o-mini), src/metadata_analyzer.py, openai, tenacity, tiktoken + +### Community 54 - "Community 54" +Cohesion: 0.29 +Nodes (4): Load mapping preset from file. Args: name: Preset name, List all saved presets. Returns: List of preset information, Delete a mapping preset. Args: name: Preset name R, Load all presets from file. + +### Community 55 - "Community 55" +Cohesion: 0.29 +Nodes (4): Tests for import endpoints., POST /import-metadata with unsupported file returns error., POST /import-metadata requires authentication., POST /import-metadata with CSV file returns columns and sample data. + +### Community 56 - "Community 56" +Cohesion: 0.53 +Nodes (4): create_parser(), extract_text(), main(), parse_args() + +### Community 57 - "Community 57" +Cohesion: 0.33 +Nodes (6): FastAPI Application (app/main.py), Flask Legacy Entrypoint (web_app.py), FastAPI Routers (app/routers/), Session Store (app/session/), src/ Library (shared), In-Memory File Processing Session (SessionStore) + +### Community 58 - "Community 58" +Cohesion: 0.33 +Nodes (6): src/auth.py, src/database.py, @login_required Decorator, MSAL (Microsoft SSO), SQLite Database (oliver_metadata.db), project/database_schema.md + +### Community 59 - "Community 59" +Cohesion: 0.33 +Nodes (5): configure_excel_mapping(), preview_excel_sheet(), Upload router: file upload, Excel upload, mapping configuration., Preview a specific sheet from uploaded Excel file., Configure Excel column mapping and load metadata into session. + +### Community 60 - "Community 60" +Cohesion: 0.33 +Nodes (6): Update file metadata using suggested metadata from session., update_metadata(), Write metadata to file. Returns True on success., Update file metadata using suggested metadata from session., Update file with manually entered metadata., update_manual_metadata() + +### Community 61 - "Community 61" +Cohesion: 0.40 +Nodes (5): docs/project/api_spec.md, docs/project/architecture.md, docs/project/runbook.md, docs/project/tech_stack.md, Oliver Metadata Tool v3.1 Enterprise Edition + +### Community 62 - "Community 62" +Cohesion: 0.40 +Nodes (5): get_stats(), Get metadata statistics., get_metadata_lookup(), get_stats(), Get or create metadata lookup instance. + +### Community 63 - "Community 63" +Cohesion: 0.50 +Nodes (4): src/extractors/video_extractor.py, ffmpeg-python, mutagen, pymediainfo + +### Community 64 - "Community 64" +Cohesion: 0.67 +Nodes (4): FieldMapper Service, MetadataImporter Service, MAP-01: Fuzzy matching auto-suggests column to field mapping, SRC-01: Import from file (CSV, Excel, JSON) + +### Community 65 - "Community 65" +Cohesion: 0.50 +Nodes (3): ai_progress_stream(), SSE router: Server-Sent Events for realtime AI progress., Stream AI processing progress events via SSE. Events: - processing: + +### Community 69 - "Community 69" +Cohesion: 0.67 +Nodes (3): src/extractors/office_extractor.py, python-docx, python-pptx + +### Community 70 - "Community 70" +Cohesion: 0.67 +Nodes (3): src/extractors/image_extractor.py, Pillow, pytesseract + +### Community 71 - "Community 71" +Cohesion: 0.67 +Nodes (3): src/extractors/pdf_extractor.py, pdfplumber, pypdf + +## Knowledge Gaps +- **107 isolated node(s):** `currentFiles`, `selectedFiles`, `uploadArea`, `fileInput`, `spinner` (+102 more) + These have ≤1 connection - possible missing edges or undocumented components. +- **31 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes. + +## Suggested Questions +_Questions this graph is uniquely positioned to answer:_ + +- **Why does `Oliver Metadata Tool v3.1` connect `Community 13` to `Community 64`, `Community 1`, `Community 37`, `Community 6`, `Community 48`, `Community 50`, `Community 30`?** + _High betweenness centrality (0.134) - this node is a cross-community bridge._ +- **Why does `sessions Table` connect `Community 30` to `Community 8`, `Community 9`, `Community 13`?** + _High betweenness centrality (0.081) - this node is a cross-community bridge._ +- **Why does `applyTemplate()` connect `Community 0` to `Community 3`, `Community 11`?** + _High betweenness centrality (0.079) - this node is a cross-community bridge._ +- **Are the 2 inferred relationships involving `Database` (e.g. with `init_dependencies()` and `MicrosoftSSO`) actually correct?** + _`Database` has 2 INFERRED edges - model-reasoned connections that need verification._ +- **Are the 5 inferred relationships involving `SessionStore` (e.g. with `_ExcelLookupAdapter` and `TestFileSession`) actually correct?** + _`SessionStore` has 5 INFERRED edges - model-reasoned connections that need verification._ +- **Are the 11 inferred relationships involving `web_app.py (Flask Entry Point)` (e.g. with `src/extractors/pdf_extractor.py` and `src/extractors/image_extractor.py`) actually correct?** + _`web_app.py (Flask Entry Point)` has 11 INFERRED edges - model-reasoned connections that need verification._ +- **Are the 12 inferred relationships involving `MetadataProcessor` (e.g. with `Config` and `metadata_analyzer.py`) actually correct?** + _`MetadataProcessor` has 12 INFERRED edges - model-reasoned connections that need verification._ \ No newline at end of file diff --git a/wiki/architecture/video-accessibility-old-structure.md b/wiki/architecture/video-accessibility-old-structure.md new file mode 100644 index 0000000..167a613 --- /dev/null +++ b/wiki/architecture/video-accessibility-old-structure.md @@ -0,0 +1,982 @@ +--- +tags: [architecture, graphify, video-accessibility-old] +updated: 2026-05-18 +--- + +# Graph Report - /Users/ai_leed/Documents/Projects/Oliver/video-accessibility-old (2026-05-18) + +## Corpus Check +- cluster-only mode — file stats not available + +## Summary +- 4214 nodes · 9399 edges · 307 communities (175 shown, 132 thin omitted) +- Extraction: 95% EXTRACTED · 5% INFERRED · 0% AMBIGUOUS · INFERRED: 514 edges (avg confidence: 0.58) +- Token cost: 0 input · 0 output + +## Graph Freshness +- Built from commit: `54eddd70` +- Run `git rev-parse HEAD` and compare to check if the graph is stale. +- Run `graphify update .` after code changes (no API cost). + +## Community Hubs (Navigation) +- [[_COMMUNITY_Community 0|Community 0]] +- [[_COMMUNITY_Community 1|Community 1]] +- [[_COMMUNITY_Community 2|Community 2]] +- [[_COMMUNITY_Community 3|Community 3]] +- [[_COMMUNITY_Community 4|Community 4]] +- [[_COMMUNITY_Community 5|Community 5]] +- [[_COMMUNITY_Community 6|Community 6]] +- [[_COMMUNITY_Community 7|Community 7]] +- [[_COMMUNITY_Community 8|Community 8]] +- [[_COMMUNITY_Community 9|Community 9]] +- [[_COMMUNITY_Community 10|Community 10]] +- [[_COMMUNITY_Community 11|Community 11]] +- [[_COMMUNITY_Community 12|Community 12]] +- [[_COMMUNITY_Community 13|Community 13]] +- [[_COMMUNITY_Community 14|Community 14]] +- [[_COMMUNITY_Community 15|Community 15]] +- [[_COMMUNITY_Community 16|Community 16]] +- [[_COMMUNITY_Community 17|Community 17]] +- [[_COMMUNITY_Community 18|Community 18]] +- [[_COMMUNITY_Community 19|Community 19]] +- [[_COMMUNITY_Community 20|Community 20]] +- [[_COMMUNITY_Community 21|Community 21]] +- [[_COMMUNITY_Community 22|Community 22]] +- [[_COMMUNITY_Community 23|Community 23]] +- [[_COMMUNITY_Community 24|Community 24]] +- [[_COMMUNITY_Community 25|Community 25]] +- [[_COMMUNITY_Community 26|Community 26]] +- [[_COMMUNITY_Community 27|Community 27]] +- [[_COMMUNITY_Community 28|Community 28]] +- [[_COMMUNITY_Community 29|Community 29]] +- [[_COMMUNITY_Community 30|Community 30]] +- [[_COMMUNITY_Community 31|Community 31]] +- [[_COMMUNITY_Community 32|Community 32]] +- [[_COMMUNITY_Community 33|Community 33]] +- [[_COMMUNITY_Community 34|Community 34]] +- [[_COMMUNITY_Community 35|Community 35]] +- [[_COMMUNITY_Community 36|Community 36]] +- [[_COMMUNITY_Community 37|Community 37]] +- [[_COMMUNITY_Community 38|Community 38]] +- [[_COMMUNITY_Community 39|Community 39]] +- [[_COMMUNITY_Community 40|Community 40]] +- [[_COMMUNITY_Community 41|Community 41]] +- [[_COMMUNITY_Community 42|Community 42]] +- [[_COMMUNITY_Community 43|Community 43]] +- [[_COMMUNITY_Community 44|Community 44]] +- [[_COMMUNITY_Community 45|Community 45]] +- [[_COMMUNITY_Community 46|Community 46]] +- [[_COMMUNITY_Community 47|Community 47]] +- [[_COMMUNITY_Community 48|Community 48]] +- [[_COMMUNITY_Community 49|Community 49]] +- [[_COMMUNITY_Community 50|Community 50]] +- [[_COMMUNITY_Community 51|Community 51]] +- [[_COMMUNITY_Community 52|Community 52]] +- [[_COMMUNITY_Community 53|Community 53]] +- [[_COMMUNITY_Community 54|Community 54]] +- [[_COMMUNITY_Community 55|Community 55]] +- [[_COMMUNITY_Community 56|Community 56]] +- [[_COMMUNITY_Community 57|Community 57]] +- [[_COMMUNITY_Community 58|Community 58]] +- [[_COMMUNITY_Community 59|Community 59]] +- [[_COMMUNITY_Community 60|Community 60]] +- [[_COMMUNITY_Community 61|Community 61]] +- [[_COMMUNITY_Community 62|Community 62]] +- [[_COMMUNITY_Community 64|Community 64]] +- [[_COMMUNITY_Community 65|Community 65]] +- [[_COMMUNITY_Community 66|Community 66]] +- [[_COMMUNITY_Community 67|Community 67]] +- [[_COMMUNITY_Community 68|Community 68]] +- [[_COMMUNITY_Community 69|Community 69]] +- [[_COMMUNITY_Community 70|Community 70]] +- [[_COMMUNITY_Community 71|Community 71]] +- [[_COMMUNITY_Community 72|Community 72]] +- [[_COMMUNITY_Community 73|Community 73]] +- [[_COMMUNITY_Community 74|Community 74]] +- [[_COMMUNITY_Community 75|Community 75]] +- [[_COMMUNITY_Community 76|Community 76]] +- [[_COMMUNITY_Community 77|Community 77]] +- [[_COMMUNITY_Community 78|Community 78]] +- [[_COMMUNITY_Community 79|Community 79]] +- [[_COMMUNITY_Community 80|Community 80]] +- [[_COMMUNITY_Community 81|Community 81]] +- [[_COMMUNITY_Community 82|Community 82]] +- [[_COMMUNITY_Community 83|Community 83]] +- [[_COMMUNITY_Community 84|Community 84]] +- [[_COMMUNITY_Community 85|Community 85]] +- [[_COMMUNITY_Community 86|Community 86]] +- [[_COMMUNITY_Community 87|Community 87]] +- [[_COMMUNITY_Community 88|Community 88]] +- [[_COMMUNITY_Community 89|Community 89]] +- [[_COMMUNITY_Community 90|Community 90]] +- [[_COMMUNITY_Community 91|Community 91]] +- [[_COMMUNITY_Community 92|Community 92]] +- [[_COMMUNITY_Community 93|Community 93]] +- [[_COMMUNITY_Community 94|Community 94]] +- [[_COMMUNITY_Community 95|Community 95]] +- [[_COMMUNITY_Community 96|Community 96]] +- [[_COMMUNITY_Community 97|Community 97]] +- [[_COMMUNITY_Community 98|Community 98]] +- [[_COMMUNITY_Community 99|Community 99]] +- [[_COMMUNITY_Community 100|Community 100]] +- [[_COMMUNITY_Community 101|Community 101]] +- [[_COMMUNITY_Community 102|Community 102]] +- [[_COMMUNITY_Community 103|Community 103]] +- [[_COMMUNITY_Community 104|Community 104]] +- [[_COMMUNITY_Community 105|Community 105]] +- [[_COMMUNITY_Community 106|Community 106]] +- [[_COMMUNITY_Community 107|Community 107]] +- [[_COMMUNITY_Community 108|Community 108]] +- [[_COMMUNITY_Community 109|Community 109]] +- [[_COMMUNITY_Community 110|Community 110]] +- [[_COMMUNITY_Community 111|Community 111]] +- [[_COMMUNITY_Community 112|Community 112]] +- [[_COMMUNITY_Community 113|Community 113]] +- [[_COMMUNITY_Community 114|Community 114]] +- [[_COMMUNITY_Community 115|Community 115]] +- [[_COMMUNITY_Community 116|Community 116]] +- [[_COMMUNITY_Community 117|Community 117]] +- [[_COMMUNITY_Community 118|Community 118]] +- [[_COMMUNITY_Community 119|Community 119]] +- [[_COMMUNITY_Community 120|Community 120]] +- [[_COMMUNITY_Community 121|Community 121]] +- [[_COMMUNITY_Community 122|Community 122]] +- [[_COMMUNITY_Community 123|Community 123]] +- [[_COMMUNITY_Community 124|Community 124]] +- [[_COMMUNITY_Community 125|Community 125]] +- [[_COMMUNITY_Community 126|Community 126]] +- [[_COMMUNITY_Community 127|Community 127]] +- [[_COMMUNITY_Community 128|Community 128]] +- [[_COMMUNITY_Community 129|Community 129]] +- [[_COMMUNITY_Community 130|Community 130]] +- [[_COMMUNITY_Community 131|Community 131]] +- [[_COMMUNITY_Community 132|Community 132]] +- [[_COMMUNITY_Community 133|Community 133]] +- [[_COMMUNITY_Community 134|Community 134]] +- [[_COMMUNITY_Community 135|Community 135]] +- [[_COMMUNITY_Community 136|Community 136]] +- [[_COMMUNITY_Community 137|Community 137]] +- [[_COMMUNITY_Community 138|Community 138]] +- [[_COMMUNITY_Community 139|Community 139]] +- [[_COMMUNITY_Community 140|Community 140]] +- [[_COMMUNITY_Community 141|Community 141]] +- [[_COMMUNITY_Community 142|Community 142]] +- [[_COMMUNITY_Community 143|Community 143]] +- [[_COMMUNITY_Community 144|Community 144]] +- [[_COMMUNITY_Community 145|Community 145]] +- [[_COMMUNITY_Community 146|Community 146]] +- [[_COMMUNITY_Community 147|Community 147]] +- [[_COMMUNITY_Community 148|Community 148]] +- [[_COMMUNITY_Community 149|Community 149]] +- [[_COMMUNITY_Community 150|Community 150]] +- [[_COMMUNITY_Community 151|Community 151]] +- [[_COMMUNITY_Community 152|Community 152]] +- [[_COMMUNITY_Community 153|Community 153]] +- [[_COMMUNITY_Community 154|Community 154]] +- [[_COMMUNITY_Community 155|Community 155]] +- [[_COMMUNITY_Community 156|Community 156]] +- [[_COMMUNITY_Community 157|Community 157]] +- [[_COMMUNITY_Community 158|Community 158]] +- [[_COMMUNITY_Community 159|Community 159]] +- [[_COMMUNITY_Community 160|Community 160]] +- [[_COMMUNITY_Community 161|Community 161]] +- [[_COMMUNITY_Community 162|Community 162]] +- [[_COMMUNITY_Community 164|Community 164]] +- [[_COMMUNITY_Community 165|Community 165]] +- [[_COMMUNITY_Community 166|Community 166]] +- [[_COMMUNITY_Community 167|Community 167]] +- [[_COMMUNITY_Community 168|Community 168]] +- [[_COMMUNITY_Community 169|Community 169]] +- [[_COMMUNITY_Community 170|Community 170]] +- [[_COMMUNITY_Community 171|Community 171]] +- [[_COMMUNITY_Community 172|Community 172]] +- [[_COMMUNITY_Community 173|Community 173]] +- [[_COMMUNITY_Community 174|Community 174]] +- [[_COMMUNITY_Community 175|Community 175]] +- [[_COMMUNITY_Community 176|Community 176]] +- [[_COMMUNITY_Community 177|Community 177]] +- [[_COMMUNITY_Community 178|Community 178]] +- [[_COMMUNITY_Community 179|Community 179]] +- [[_COMMUNITY_Community 180|Community 180]] +- [[_COMMUNITY_Community 181|Community 181]] +- [[_COMMUNITY_Community 183|Community 183]] +- [[_COMMUNITY_Community 184|Community 184]] +- [[_COMMUNITY_Community 185|Community 185]] +- [[_COMMUNITY_Community 200|Community 200]] +- [[_COMMUNITY_Community 201|Community 201]] +- [[_COMMUNITY_Community 202|Community 202]] +- [[_COMMUNITY_Community 203|Community 203]] +- [[_COMMUNITY_Community 204|Community 204]] +- [[_COMMUNITY_Community 205|Community 205]] +- [[_COMMUNITY_Community 206|Community 206]] +- [[_COMMUNITY_Community 207|Community 207]] +- [[_COMMUNITY_Community 208|Community 208]] +- [[_COMMUNITY_Community 209|Community 209]] +- [[_COMMUNITY_Community 210|Community 210]] +- [[_COMMUNITY_Community 211|Community 211]] +- [[_COMMUNITY_Community 212|Community 212]] +- [[_COMMUNITY_Community 213|Community 213]] +- [[_COMMUNITY_Community 214|Community 214]] +- [[_COMMUNITY_Community 215|Community 215]] +- [[_COMMUNITY_Community 216|Community 216]] +- [[_COMMUNITY_Community 217|Community 217]] +- [[_COMMUNITY_Community 218|Community 218]] +- [[_COMMUNITY_Community 219|Community 219]] +- [[_COMMUNITY_Community 220|Community 220]] +- [[_COMMUNITY_Community 221|Community 221]] +- [[_COMMUNITY_Community 222|Community 222]] +- [[_COMMUNITY_Community 223|Community 223]] +- [[_COMMUNITY_Community 224|Community 224]] +- [[_COMMUNITY_Community 225|Community 225]] +- [[_COMMUNITY_Community 226|Community 226]] +- [[_COMMUNITY_Community 227|Community 227]] +- [[_COMMUNITY_Community 228|Community 228]] +- [[_COMMUNITY_Community 229|Community 229]] +- [[_COMMUNITY_Community 230|Community 230]] +- [[_COMMUNITY_Community 231|Community 231]] +- [[_COMMUNITY_Community 232|Community 232]] +- [[_COMMUNITY_Community 233|Community 233]] +- [[_COMMUNITY_Community 234|Community 234]] +- [[_COMMUNITY_Community 235|Community 235]] +- [[_COMMUNITY_Community 236|Community 236]] +- [[_COMMUNITY_Community 237|Community 237]] +- [[_COMMUNITY_Community 238|Community 238]] +- [[_COMMUNITY_Community 239|Community 239]] +- [[_COMMUNITY_Community 240|Community 240]] +- [[_COMMUNITY_Community 241|Community 241]] +- [[_COMMUNITY_Community 242|Community 242]] +- [[_COMMUNITY_Community 243|Community 243]] +- [[_COMMUNITY_Community 244|Community 244]] +- [[_COMMUNITY_Community 245|Community 245]] +- [[_COMMUNITY_Community 246|Community 246]] +- [[_COMMUNITY_Community 247|Community 247]] +- [[_COMMUNITY_Community 248|Community 248]] +- [[_COMMUNITY_Community 249|Community 249]] +- [[_COMMUNITY_Community 250|Community 250]] +- [[_COMMUNITY_Community 251|Community 251]] +- [[_COMMUNITY_Community 252|Community 252]] +- [[_COMMUNITY_Community 253|Community 253]] +- [[_COMMUNITY_Community 254|Community 254]] +- [[_COMMUNITY_Community 255|Community 255]] +- [[_COMMUNITY_Community 256|Community 256]] +- [[_COMMUNITY_Community 257|Community 257]] +- [[_COMMUNITY_Community 258|Community 258]] +- [[_COMMUNITY_Community 259|Community 259]] +- [[_COMMUNITY_Community 260|Community 260]] +- [[_COMMUNITY_Community 261|Community 261]] +- [[_COMMUNITY_Community 262|Community 262]] +- [[_COMMUNITY_Community 263|Community 263]] +- [[_COMMUNITY_Community 264|Community 264]] +- [[_COMMUNITY_Community 265|Community 265]] +- [[_COMMUNITY_Community 266|Community 266]] +- [[_COMMUNITY_Community 267|Community 267]] +- [[_COMMUNITY_Community 268|Community 268]] +- [[_COMMUNITY_Community 269|Community 269]] +- [[_COMMUNITY_Community 270|Community 270]] +- [[_COMMUNITY_Community 271|Community 271]] +- [[_COMMUNITY_Community 272|Community 272]] +- [[_COMMUNITY_Community 273|Community 273]] +- [[_COMMUNITY_Community 274|Community 274]] +- [[_COMMUNITY_Community 275|Community 275]] +- [[_COMMUNITY_Community 276|Community 276]] +- [[_COMMUNITY_Community 277|Community 277]] +- [[_COMMUNITY_Community 278|Community 278]] +- [[_COMMUNITY_Community 279|Community 279]] +- [[_COMMUNITY_Community 280|Community 280]] +- [[_COMMUNITY_Community 281|Community 281]] +- [[_COMMUNITY_Community 282|Community 282]] +- [[_COMMUNITY_Community 283|Community 283]] +- [[_COMMUNITY_Community 284|Community 284]] +- [[_COMMUNITY_Community 285|Community 285]] +- [[_COMMUNITY_Community 286|Community 286]] +- [[_COMMUNITY_Community 287|Community 287]] +- [[_COMMUNITY_Community 288|Community 288]] +- [[_COMMUNITY_Community 291|Community 291]] +- [[_COMMUNITY_Community 292|Community 292]] +- [[_COMMUNITY_Community 293|Community 293]] +- [[_COMMUNITY_Community 294|Community 294]] +- [[_COMMUNITY_Community 295|Community 295]] +- [[_COMMUNITY_Community 296|Community 296]] +- [[_COMMUNITY_Community 297|Community 297]] +- [[_COMMUNITY_Community 298|Community 298]] +- [[_COMMUNITY_Community 299|Community 299]] +- [[_COMMUNITY_Community 300|Community 300]] +- [[_COMMUNITY_Community 301|Community 301]] +- [[_COMMUNITY_Community 302|Community 302]] +- [[_COMMUNITY_Community 303|Community 303]] +- [[_COMMUNITY_Community 304|Community 304]] +- [[_COMMUNITY_Community 305|Community 305]] +- [[_COMMUNITY_Community 306|Community 306]] + +## God Nodes (most connected - your core abstractions) +1. `ApiClient` - 121 edges +2. `PM` - 106 edges +3. `constructor()` - 86 edges +4. `we()` - 83 edges +5. `set()` - 65 edges +6. `get()` - 59 edges +7. `Ud` - 56 edges +8. `qf` - 54 edges +9. `dE()` - 54 edges +10. `pE()` - 54 edges + +## Surprising Connections (you probably didn't know these) +- `handleDownload()` --calls--> `fetch()` [INFERRED] + frontend/src/routes/Downloads.tsx → assets/index-BMcXQls5.js +- `Audit logging service for tracking sensitive operations.` --rationale_for--> `Audit Logger` [EXTRACTED] + backend/app/services/audit_logger.py → docs/reference/guides/testing-strategy.md +- `Service for managing audit logs.` --rationale_for--> `Audit Logger` [EXTRACTED] + backend/app/services/audit_logger.py → docs/reference/guides/testing-strategy.md +- `main()` --calls--> `parse_ad_cues()` [INFERRED] + scripts/replace_cue_voice.py → backend/app/tasks/tts_synthesis.py +- `main()` --calls--> `GeminiTTSService` [INFERRED] + scripts/replace_cue_voice.py → backend/app/services/gemini_tts.py + +## Communities (307 total, 132 thin omitted) + +### Community 0 - "Community 0" +Cohesion: 0.01 +Nodes (156): _1(), a4, AI, aw(), ax, b3, b4, b5 (+148 more) + +### Community 1 - "Community 1" +Cohesion: 0.03 +Nodes (88): ACTION_GROUPS, SEVERITY_COLORS, Tab, VoicePreviewButtonProps, VoiceSelector(), JOB_STATUS_LABEL, LinguistQueue(), STATUS_TABS (+80 more) + +### Community 2 - "Community 2" +Cohesion: 0.06 +Nodes (87): _5, _6, $A(), aS, aU(), bC(), BM(), Bu (+79 more) + +### Community 3 - "Community 3" +Cohesion: 0.05 +Nodes (72): _2(), _3, az(), bE(), bj(), Bp(), CE(), Cl() (+64 more) + +### Community 4 - "Community 4" +Cohesion: 0.06 +Nodes (57): FinalDetail(), LanguagePreview(), FinalList(), LANG_QC_BADGE, LANG_QC_ICON, QCDetail(), QCList(), StatusBadgeProps (+49 more) + +### Community 5 - "Community 5" +Cohesion: 0.05 +Nodes (46): Config, Microsoft Authentication Service Validates Microsoft ID tokens and extracts use, Render accessible video based on Gemini analysis. Args: sou, # NOTE: Use _get_video_duration_local directly since freeze segments are, Service for re-timing VTT files when pauses are inserted into video., get_connection_manager(), WebSocket Connection Manager for Real-time Job Status Updates This module provi, Dependency to get the connection manager (+38 more) + +### Community 6 - "Community 6" +Cohesion: 0.06 +Nodes (70): addObserver(), AE(), Bg(), bO(), build(), #C(), cancel(), clearGcTimeout() (+62 more) + +### Community 7 - "Community 7" +Cohesion: 0.04 +Nodes (46): AccessibleVideoEditState, AISection, Config, Job, JobCreate, JobUpdate, LanguageQCEvent, PausePointData (+38 more) + +### Community 8 - "Community 8" +Cohesion: 0.08 +Nodes (12): add(), Dl(), ig(), jg(), L2(), n2, Ud, Vt() (+4 more) + +### Community 9 - "Community 9" +Cohesion: 0.06 +Nodes (15): accessor(), ap(), ct, dM(), en, _f(), jn, Ki() (+7 more) + +### Community 10 - "Community 10" +Cohesion: 0.06 +Nodes (51): ClientDetail(), ClientList(), UserAssignmentsPanel(), UserDetail(), useAddTeamMember(), useArchiveProject(), useAssignPM(), useClient() (+43 more) + +### Community 11 - "Community 11" +Cohesion: 0.04 +Nodes (11): ApiClient, Get system statistics (production/admin only), Get audit logs with filtering (production/admin only), Force reprocessing of a job (production/admin emergency function), Get audit logs for a specific user (production/admin only), Get recent security events (production/admin only), reprocess_job(), Get a single review note by ID. (+3 more) + +### Community 12 - "Community 12" +Cohesion: 0.12 +Nodes (19): b1(), b2(), Bf(), clear(), Dd, er(), f1, H1 (+11 more) + +### Community 13 - "Community 13" +Cohesion: 0.09 +Nodes (23): a2(), AN(), Cn, d1, ds(), e2(), eo, FA() (+15 more) + +### Community 14 - "Community 14" +Cohesion: 0.06 +Nodes (37): RequireAuth(), RequireAuthProps, RoleGate(), RoleGateProps, GlossaryDetail(), Tab, GlossaryList(), useMyMemberships() (+29 more) + +### Community 15 - "Community 15" +Cohesion: 0.12 +Nodes (6): IE(), kE(), ub(), Wf, xk, Zn() + +### Community 17 - "Community 17" +Cohesion: 0.09 +Nodes (17): ag(), C1(), D2(), from(), G1(), HA(), j1(), Ji() (+9 more) + +### Community 18 - "Community 18" +Cohesion: 0.06 +Nodes (15): Ad(), aj, bl(), cb(), _d, Gi, hS(), jb() (+7 more) + +### Community 19 - "Community 19" +Cohesion: 0.05 +Nodes (44): get_accessible_project_ids(), Returns project IDs the user may access, or None meaning "see everything"., log_job_action(), Log job-related actions., adjust_vtt_timing(), approve_english(), approve_source(), bulk_approve_jobs() (+36 more) + +### Community 20 - "Community 20" +Cohesion: 0.08 +Nodes (6): db(), gk(), kn, t1, tt, yf() + +### Community 21 - "Community 21" +Cohesion: 0.06 +Nodes (42): a3(), Al(), Bd, cI(), concat(), cS(), cw, eC() (+34 more) + +### Community 22 - "Community 22" +Cohesion: 0.05 +Nodes (38): create_indexes(), MongoDB, Create database indexes as specified in the development plan, axios, @azure/msal-browser, @azure/msal-react, date-fns, @hookform/resolvers (+30 more) + +### Community 23 - "Community 23" +Cohesion: 0.09 +Nodes (40): ar(), At(), Bs(), Cf(), Cj(), cR(), Dg(), DN() (+32 more) + +### Community 24 - "Community 24" +Cohesion: 0.08 +Nodes (4): ls, pk(), qf, sb() + +### Community 25 - "Community 25" +Cohesion: 0.07 +Nodes (17): bindMethods(), constructor(), eb(), _g, gt, I2, kd, Lf() (+9 more) + +### Community 26 - "Community 26" +Cohesion: 0.07 +Nodes (32): Test direct database connection., test_database_connection(), get_password_hash(), verify_password(), Seed utilities for initial data setup., Ensure the default admin user exists and has the admin role. Looks up vadym, seed_default_admin(), Log user management actions. (+24 more) + +### Community 27 - "Community 27" +Cohesion: 0.25 +Nodes (38): AccessibleVideoProgressItem, JobStatus, LangOutput, Progress tracking for accessible video rendering per language., TTS voice preferences for audio description generation, RequestedOutputs, Review, TTSPreferences (+30 more) + +### Community 28 - "Community 28" +Cohesion: 0.07 +Nodes (36): aC(), aM(), aO(), BA(), bt, C4(), cO(), dI (+28 more) + +### Community 29 - "Community 29" +Cohesion: 0.10 +Nodes (34): BaseModel, Client, ClientCreate, ClientUpdate, Project, ProjectCreate, ProjectUpdate, Team (+26 more) + +### Community 30 - "Community 30" +Cohesion: 0.06 +Nodes (34): devDependencies, autoprefixer, eslint, @eslint/js, eslint-plugin-react-hooks, eslint-plugin-react-refresh, globals, jsdom (+26 more) + +### Community 31 - "Community 31" +Cohesion: 0.09 +Nodes (28): AuditLog(), Audit Logger, AuditLog, AuditLogQuery, AuditLogResponse, Config, Audit log model for tracking sensitive operations., Schema for querying audit logs. (+20 more) + +### Community 32 - "Community 32" +Cohesion: 0.07 +Nodes (34): Async wrapper for broadcasting job status updates from API routes For Ce, _async_render_accessible_video(), _build_placements_from_ad_vtt(), _check_accessible_video_completion(), Build placement instructions from AD VTT cues and TTS durations. Uses AD VT, Check if all accessible videos are complete and update job status accordingly., Async implementation of accessible video rendering., _build_placements_with_adjustments() (+26 more) + +### Community 33 - "Community 33" +Cohesion: 0.10 +Nodes (33): concatenate_segments(), ConcatenateRequest, _download_from_gcs(), encode_segment(), EncodeSegmentRequest, extract_frame(), ExtractFrameRequest, _parse_gcs_uri() (+25 more) + +### Community 34 - "Community 34" +Cohesion: 0.06 +Nodes (31): Request to regenerate TTS for a specific cue during QC., TTSRegenerationRequest, AccessibleVideoEditStateResponse, AccessibleVideoRenderRequest, ADCueSegment, ADPlacementCue, GeminiAccessibleVideoAnalysis, PausePointResponse (+23 more) + +### Community 35 - "Community 35" +Cohesion: 0.09 +Nodes (23): NOTIFICATION_TYPE_ICONS, CONNECTION_MESSAGES, useWebSocketToastHandler(), WebSocketToastHandlerProps, GlobalWebSocketProvider(), NotificationItem, NotificationProvider(), ToastContext (+15 more) + +### Community 36 - "Community 36" +Cohesion: 0.06 +Nodes (3): get(), getSetCookie(), lM() + +### Community 37 - "Community 37" +Cohesion: 0.12 +Nodes (30): Enum, AuditAction, AuditLogSeverity, Enumeration of auditable actions., Severity levels for audit events., AuthProvider, Convert ObjectId to string, UserRole (+22 more) + +### Community 38 - "Community 38" +Cohesion: 0.09 +Nodes (19): test_login(), test_login(), get_current_user(), create_access_token(), create_refresh_token(), decode_token(), Test decoding expired JWT token, Test decoding token with wrong secret (+11 more) + +### Community 39 - "Community 39" +Cohesion: 0.14 +Nodes (17): .archive/source-docs-2026-04-29/original/README.md, .github/workflows/cd-backend.yml, .github/workflows/cd-frontend.yml, .github/workflows/ci.yml, Celery Workers, FastAPI Backend, Google Cloud Storage, Gemini 2.5 Pro AI (+9 more) + +### Community 40 - "Community 40" +Cohesion: 0.19 +Nodes (20): _assert_client_access(), _assert_pm_or_admin(), assign_pm(), _client_from_doc(), create_team(), deactivate_client(), delete_team(), get_client() (+12 more) + +### Community 41 - "Community 41" +Cohesion: 0.09 +Nodes (13): EmailService, Sends email via Mailgun REST API (httpx, async-safe)., Render the completion email HTML template, Test rendering completion email template, Test rendering template with single language, Test rendering template with no download links, Test that rendered template has proper HTML structure, Test that download links are properly formatted in template (+5 more) + +### Community 42 - "Community 42" +Cohesion: 0.07 +Nodes (13): GCSService, Delete a file from GCS, Check if a file exists in GCS, Upload file to GCS and return the GCS URI, Generate a signed URL for downloading a file, upload_file_to_gcs(), gcs_service(), Test Google Cloud Storage service functionality (+5 more) + +### Community 43 - "Community 43" +Cohesion: 0.07 +Nodes (16): Test VTT editing functionality, Test translating text while preserving timing, Test error handling for text count mismatch, Test updating a specific cue's text, Test error handling for invalid cue index, Test validation of valid VTT content, Test validation fails without WEBVTT header, Test validation catches timing errors (+8 more) + +### Community 44 - "Community 44" +Cohesion: 0.09 +Nodes (18): ABC, Database migration framework for MongoDB., down(), migrate_down(), migrate_up(), Migration, MongoDB migration framework., Get list of applied migration versions. (+10 more) + +### Community 45 - "Community 45" +Cohesion: 0.10 +Nodes (26): _all_approved(), _any_rejected(), approve_language(), _assert_can_act(), assign_linguist(), _job_languages(), list_for_linguist(), _maybe_advance_job() (+18 more) + +### Community 46 - "Community 46" +Cohesion: 0.11 +Nodes (28): _, B(), BR(), cP, Cu, Fd(), getUri(), GR() (+20 more) + +### Community 47 - "Community 47" +Cohesion: 0.08 +Nodes (23): cors_error_handler(), general_exception_handler(), http_exception_handler(), lifespan(), metrics(), rate_limiting_middleware(), Ensure CORS headers are added to all responses, including errors., Handle HTTP exceptions with CORS headers (+15 more) + +### Community 48 - "Community 48" +Cohesion: 0.10 +Nodes (16): ConnectionManager, JobStatusUpdate, Connect a WebSocket for job list updates (all jobs for a user), Disconnect a WebSocket and clean up subscriptions, Background task to handle Redis pub/sub messages with reconnection logic, Schema for job status update messages, Handle incoming Redis pub/sub message, Send job status update to specific job subscribers (+8 more) + +### Community 49 - "Community 49" +Cohesion: 0.08 +Nodes (23): Telemetry package for OpenTelemetry tracing and metrics collection, get_tracer(), instrument_dependencies(), instrument_fastapi_app(), Decorator for tracing async operations, Decorator for tracing job pipeline stages, Decorator for tracing AI service operations, Initialize OpenTelemetry tracing for the application (+15 more) + +### Community 50 - "Community 50" +Cohesion: 0.16 +Nodes (21): LanguageQCState, LanguageQCStatus, User, UserInDB, ApproveLanguageRequest, AssignRequest, LanguageQCMapResponse, LanguageQCStateResponse (+13 more) + +### Community 51 - "Community 51" +Cohesion: 0.10 +Nodes (26): FloatRange, get_tts_options(), LanguagesResponse, list_languages(), list_voices(), _preview_elevenlabs(), _preview_gemini(), preview_voice() (+18 more) + +### Community 52 - "Community 52" +Cohesion: 0.13 +Nodes (15): Service for rendering accessible video with embedded audio descriptions using ff, Delete temporary GCS file. Args: gcs_uri: GCS URI to delete, Concatenate audio files via Cloud Run FFmpeg service., Generate a silent audio file of specified duration. Used to create 500m, Upload local file to permanent GCS location (not temp). Args:, Generate silence using local ffmpeg via Celery queue., Generate silence via Cloud Run FFmpeg service., Concatenate video segments via Cloud Run FFmpeg service. (+7 more) + +### Community 53 - "Community 53" +Cohesion: 0.13 +Nodes (25): get_database(), Set the database instance., glossary_from_doc(), activate_version(), archive_glossary(), _cell(), _ensure_indexes(), get_glossaries_for_client() (+17 more) + +### Community 54 - "Community 54" +Cohesion: 0.13 +Nodes (26): backend/tests/conftest.py, Glossary Service Hybrid Retrieval, RBAC Permission Checks, Risk-Based Testing Strategy, Translation Pipeline, services/audit_logger.py, core/authz.py, services/gcs.py (+18 more) + +### Community 55 - "Community 55" +Cohesion: 0.18 +Nodes (18): bump_user_membership_cache(), Invalidate the Redis membership cache for a user (call on any membership write)., get_membership(), get_memberships_for_user(), has_org_role(), _membership_from_doc(), _now(), Membership service — queries the memberships collection. (+10 more) + +### Community 56 - "Community 56" +Cohesion: 0.11 +Nodes (18): FileListItem, MultiUploadFileListProps, UploadProgressItem, UploadStatus, useLanguages(), AxiosErrorLike, FileListItem, SharedJobSettings (+10 more) + +### Community 57 - "Community 57" +Cohesion: 0.13 +Nodes (13): Calculate cumulative offset for timestamps AT or AFTER pause points. A, Service for re-timing VTT subtitle files after pause insertions., Retime a single cue, potentially splitting it across pause points. If a, Retime a cue that doesn't span any pause points. Start time uses offset, Generate new VTT with adjusted timings for pause-insert accessible video., Filter out segments that are too short to display meaningfully., Re-time the audio description VTT for pause-insert accessible video. Fo, Parse VTT content into a list of cue dictionaries. (+5 more) + +### Community 58 - "Community 58" +Cohesion: 0.08 +Nodes (13): Cue 8s-10s with pause at 10s should remain at 8s-10s., Cue 5s-25s with pauses at 10s and 20s should split into 3 segments., Cue 8s-12s with pause at 10s (4s freeze) should split into 8s-10s + 14s-16s., Very short segments (<100ms) should be filtered out., No placements should return original VTT unchanged., Multiple cues with a pause between them., Pause at 0.0 should shift all subsequent cues., Multiple placements at the same pause point should be handled correctly. (+5 more) + +### Community 59 - "Community 59" +Cohesion: 0.10 +Nodes (16): BudgetExceeded, preflight(), Thin HTTP client for the centralized Oliver AI Cost Tracker., Raised by preflight() when the cost tracker rejects a call due to budget limits., generate_descriptive_transcript(), Descriptive Transcript Service Generates a WCAG-compliant descriptive transcrip, Merge captions VTT and audio description VTT into a descriptive transcript., Upload text content to GCS and return the GCS URI (+8 more) + +### Community 60 - "Community 60" +Cohesion: 0.13 +Nodes (17): LanguageTrack, useCreateReviewNote(), useDeleteReviewNote(), useReviewNotes(), useUpdateReviewNote(), DownloadCard(), handleDownload(), LangOutput (+9 more) + +### Community 61 - "Community 61" +Cohesion: 0.13 +Nodes (18): Exception, Validate file type using magic numbers., Validate file size limits., Validate JSON request payload., Custom validation error., Recursively validate JSON values., Validate query parameters., Validate request headers. (+10 more) + +### Community 62 - "Community 62" +Cohesion: 0.09 +Nodes (15): ApplicationMetrics, Initialize metrics provider and meter, Start Prometheus metrics HTTP server, Record a new job creation, Record job status change, Central metrics collection for the accessible video platform, Record time taken for job processing stage, Record AI service request (+7 more) + +### Community 64 - "Community 64" +Cohesion: 0.09 +Nodes (13): Test helper methods of VTTRetimerService., offset_at should return 0 for timestamps before any pause., offset_at should include offset for timestamps AT pause point., offset_at should include offset for timestamps after pause., offset_at should sum offsets from all applicable pauses., offset_before should return 0 for timestamps before any pause., offset_before should NOT include offset for timestamps AT pause point., offset_before should include offset for timestamps after pause. (+5 more) + +### Community 65 - "Community 65" +Cohesion: 0.17 +Nodes (16): Invitation, InvitationAcceptRequest, InvitationCreate, InvitationPreviewResponse, InvitationResponse, MemberDetail, Membership, MembershipCreate (+8 more) + +### Community 66 - "Community 66" +Cohesion: 0.09 +Nodes (21): compilerOptions, allowImportingTsExtensions, erasableSyntaxOnly, jsx, lib, module, moduleDetection, moduleResolution (+13 more) + +### Community 67 - "Community 67" +Cohesion: 0.10 +Nodes (14): createMockFile(), mockApiResponses, badge, unknownStatus, customAccept, invalidFile, largeFile, mockFile (+6 more) + +### Community 68 - "Community 68" +Cohesion: 0.10 +Nodes (11): Test parsing different timestamp formats, Test formatting seconds to VTT timestamp, Test that parsing and building are consistent, Test parsing VTT with cue identifiers, Test parsing VTT with multi-line cue text, Test VTT parsing and building functionality, Test parsing VTT with NOTE sections, Test building VTT from cues (+3 more) + +### Community 69 - "Community 69" +Cohesion: 0.11 +Nodes (11): Utility class for editing VTT content while preserving timing, VTTEditor, endTimeInput, onChange, startTimeInput, textarea, user, computeCueErrors() (+3 more) + +### Community 70 - "Community 70" +Cohesion: 0.16 +Nodes (19): a5(), c5(), dC(), e5(), fS(), hC(), i5(), l5() (+11 more) + +### Community 71 - "Community 71" +Cohesion: 0.13 +Nodes (14): _cached_memberships(), get_membership_context(), _load_memberships(), MembershipContext, OrgScopedQuery, Central authorization module (Phase 3 SaaS). Provides: - MembershipContext —, Dependency factory: ensures the current user has at least `min_role` in the, Dependency: platform admin only. (+6 more) + +### Community 72 - "Community 72" +Cohesion: 0.14 +Nodes (14): VTT Version Control API Endpoints, _count_cues(), create_version(), _next_version(), VTT version control service — DB-backed snapshots with GCS storage., Create a new version whose content is a copy of an older version (non-destructiv, Line-level diff between two versions using difflib., Count WebVTT cue blocks (lines containing ' --> '). (+6 more) + +### Community 73 - "Community 73" +Cohesion: 0.14 +Nodes (8): firstCue, textarea, mockApiResponses, testJobs, testUsers, testVttContent, AuthHelper, MockAPIHelper + +### Community 74 - "Community 74" +Cohesion: 0.11 +Nodes (18): compilerOptions, allowImportingTsExtensions, erasableSyntaxOnly, lib, module, moduleDetection, moduleResolution, noEmit (+10 more) + +### Community 75 - "Community 75" +Cohesion: 0.13 +Nodes (18): all_codes(), all_display_map(), get(), get_display_name(), get_gemini_label(), get_preview_sample(), get_tts_lang(), Locale (+10 more) + +### Community 76 - "Community 76" +Cohesion: 0.12 +Nodes (19): ADR-003: Hybrid Exact + Vector Glossary Retrieval, Admin API Endpoints, Glossaries API Endpoints, VTT Management API Endpoints, services/audit_logger.py, services/glossary_service.py, Hybrid Glossary Retrieval, Job State Machine (16 States) (+11 more) + +### Community 77 - "Community 77" +Cohesion: 0.15 +Nodes (15): get_redis(), Get a secret value if it was loaded from Secret Manager., get_api_keys(), get_jwt_secrets(), get_secret(), get_secrets_batch(), Google Cloud Secret Manager integration service., Custom exception for Secret Manager operations. (+7 more) + +### Community 78 - "Community 78" +Cohesion: 0.15 +Nodes (18): EmbeddingStatus, Glossary, GlossaryCreate, GlossaryDetailResponse, GlossaryResponse, GlossarySource, GlossaryStatus, GlossaryTerm (+10 more) + +### Community 79 - "Community 79" +Cohesion: 0.14 +Nodes (15): close_publisher(), get_job_eligible_users(), JobStatusUpdate, publish_job_status_update(), publish_job_update_with_eligibility(), Synchronous WebSocket Publisher for Celery Workers This module provides a synch, Close Redis connection, Convenience function to publish job status update This is the function that (+7 more) + +### Community 80 - "Community 80" +Cohesion: 0.13 +Nodes (18): d4(), Fl(), jL(), mz, nj(), Os, Pp, pw() (+10 more) + +### Community 81 - "Community 81" +Cohesion: 0.22 +Nodes (13): AcceptInvite(), Stage, _assert_org_admin(), _get_org_name(), _hash_token(), _inv_from_doc(), _make_token(), _now() (+5 more) + +### Community 82 - "Community 82" +Cohesion: 0.12 +Nodes (18): ADR-001: Async Celery Bridge via New Event Loop Per Task, ADR-002: Access Tokens Stored in JS Memory, lib/api.ts, lib/auth.ts, services/gcs.py, services/gemini.py, tasks/ingest_and_ai.py, services/microsoft_auth.py (+10 more) + +### Community 83 - "Community 83" +Cohesion: 0.15 +Nodes (12): main(), MigrationCLI, # TODO: Implement your migration logic here, # TODO: Implement your rollback logic here, Main CLI entry point., Command-line interface for database migrations., Show current migration status., Create a new migration template. (+4 more) + +### Community 84 - "Community 84" +Cohesion: 0.11 +Nodes (10): Test parsing audio description cues, Test parsing empty VTT content, Test timestamp parsing, Test getting default ElevenLabs voice for language, Test getting custom ElevenLabs voice, Test ElevenLabs voice fallback for unknown language, Test service initialization with no credentials, Test Text-to-Speech service functionality (+2 more) + +### Community 85 - "Community 85" +Cohesion: 0.18 +Nodes (8): Return the pre-built glossary block (from glossary_service.build_glossary_prompt, Build the brand context instruction block for injection into prompts., Extract captions and audio descriptions from video using Gemini 2.0 Retu, Load prompt template from prompts directory, Wait for uploaded file to become ACTIVE state, Transcreate English VTT content to target language with cultural adaptation, Rewrite an audio description cue to be TTS-friendly. Called when TTS sy, _record_gemini_usage() + +### Community 86 - "Community 86" +Cohesion: 0.12 +Nodes (8): Migration, Add rendering_video status to jobs collection validator., Revert to previous validator (without rendering_video)., Migration, Add rendering_qc status to jobs collection validator. This status is used durin, Update MongoDB schema validator to support rendering_qc status., Update the jobs collection validator to include rendering_qc status., Revert to previous validator (without rendering_qc status). + +### Community 87 - "Community 87" +Cohesion: 0.23 +Nodes (13): activate_version(), _assert_can_read(), list_glossaries(), list_terms(), Glossary management endpoints. Access: - All glossary mutations (upload, acti, Upload a new xlsx file as a new version of an existing glossary., List all active glossaries for a client., Upload a new glossary xlsx file and associate it with a client. (+5 more) + +### Community 88 - "Community 88" +Cohesion: 0.13 +Nodes (10): BaseConfig, BaseSettings, Settings, initialize_config(), Enhanced configuration system with Secret Manager integration., Initialize configuration with secrets loading., Enhanced configuration that loads secrets from GCP Secret Manager., Load secrets from Secret Manager asynchronously. (+2 more) + +### Community 89 - "Community 89" +Cohesion: 0.16 +Nodes (13): _format_timestamp(), Config, Review Note model for timestamped video review notes., A timestamped note attached to a video asset during review., ReviewNote, ReviewNote, AddNoteForm(), AddNoteFormProps (+5 more) + +### Community 90 - "Community 90" +Cohesion: 0.14 +Nodes (16): optical-web-1 Production Server, AI Prompt for Generating Accessible Closed Captions, DCMP Closed Captioning Guidelines, Merriam-Webster Online, WebVTT Format, R-02: AI Processing Pipeline, R-11: Real-time Notifications, scripts/full-deploy.sh (+8 more) + +### Community 91 - "Community 91" +Cohesion: 0.13 +Nodes (10): Concatenate video segments using ffmpeg concat demuxer., Copy video without modification., Render with overlay method: 1. Create AD audio track with segments at ta, Render with pause-insert method: 1. Split video at each pause point, Get video duration in seconds using ffprobe., Get video duration using local ffprobe via Celery queue., Get detailed video and audio properties., Get video properties using local ffprobe via Celery queue. (+2 more) + +### Community 92 - "Community 92" +Cohesion: 0.17 +Nodes (10): GeminiTTSService, Raised when TTS synthesis fails after all retries., Generate a preview audio sample for voice selection. Uses language-speci, Synthesize a single cue with exponential backoff retry. Args:, Text-to-Speech service using Gemini TTS API, Synthesize full audio description from VTT content. Maintains timing ali, Convert raw PCM audio (24kHz, 16-bit, mono) to MP3. Gemini TTS outputs P, Synthesize text to audio using Gemini TTS. Returns MP3 audio bytes. (+2 more) + +### Community 93 - "Community 93" +Cohesion: 0.14 +Nodes (11): GeminiService, Attempt to self-heal invalid JSON response from Gemini, Attempt to self-heal invalid JSON response from targeted extraction, Attempt to fix common JSON syntax issues, Translate VTT content using Gemini, preserving timing programmatically., Tests for GeminiService.translate_vtt() method, Integration tests for Gemini service (requires actual API key), Test real Gemini extraction (requires setup) (+3 more) + +### Community 94 - "Community 94" +Cohesion: 0.17 +Nodes (8): Parser and builder for WebVTT files, Parse VTT content into a list of cues, Build VTT content from a list of cues, VTTCue, VTTParser, VTTValidator, cues, SyncedCaptionList() + +### Community 95 - "Community 95" +Cohesion: 0.17 +Nodes (11): MicrosoftAuthError, MicrosoftAuthService, MicrosoftTokenValidationError, MicrosoftUserInfo, Validate Microsoft ID token and extract user information. Args:, User information extracted from Microsoft ID token., Base exception for Microsoft authentication errors., Raised when token validation fails. (+3 more) + +### Community 96 - "Community 96" +Cohesion: 0.16 +Nodes (10): FFmpegExecutionError, _get_cloud_run_id_token(), Extract segment with RE-ENCODING for frame-accurate cuts. Crucial for p, Extract segment with re-encoding using local ffmpeg via Celery queue., Extract segment with re-encoding via Cloud Run FFmpeg service., Extract frame via Cloud Run FFmpeg service., Call Cloud Run FFmpeg service endpoint. Args: endpoint: End, Dispatch FFmpeg command to the dedicated ffmpeg queue and wait for result. (+2 more) + +### Community 97 - "Community 97" +Cohesion: 0.14 +Nodes (9): Whisper HTTP Service - FastAPI application for Cloud Run deployment. This servi, Pre-load Whisper model on startup to reduce first-request latency., startup_event(), Service for Whisper-based speech analysis and pause point refinement., Identify gaps between words that could serve as pause points. Args:, A gap between words, potential pause point., Find the gap type for a given timestamp., Service for speech analysis using faster-whisper. (+1 more) + +### Community 99 - "Community 99" +Cohesion: 0.16 +Nodes (13): CachedWhisperTranscript, CachedWordTimestamp, Schemas for Whisper transcript caching., Cached Whisper transcript stored in job document., Word timestamp for MongoDB storage., _dispatch_whisper_transcription(), _extract_audio_for_whisper(), Refine Gemini pause points using Whisper speech gap detection. This functio (+5 more) + +### Community 100 - "Community 100" +Cohesion: 0.14 +Nodes (13): { login }, loginCall, loginError, loginPromise, { logout }, mockApiClient, mockLoginResponse, mockUser (+5 more) + +### Community 101 - "Community 101" +Cohesion: 0.18 +Nodes (14): build_glossary_prompt_block(), _exact_match(), _get_active_version_id(), get_glossary_block_for_job(), _get_translation(), match_terms_for_text(), Hybrid retrieval: exact-match (Aho-Corasick) + semantic (Atlas Vector Search)., Return the active version_id for the active glossary of a client, or None. (+6 more) + +### Community 102 - "Community 102" +Cohesion: 0.14 +Nodes (8): Check if a pause point is "during speaking" (words nearby). Args:, Find all sentence boundaries (starts and ends) from the transcript. Bou, Snap a Gemini pause point to the nearest sentence boundary. Simplified, Refine all pause points in a Gemini analysis result. Two-phase algorith, Consolidate AD cues whose pause points are within threshold seconds of each othe, Log information about consolidated AD cue groups., A sentence boundary (start or end) for pause point snapping. Used to determ, SentenceBoundary + +### Community 104 - "Community 104" +Cohesion: 0.15 +Nodes (8): b6(), d5(), nM(), [Symbol.iterator](), toJSON(), toString(), wj(), xC() + +### Community 105 - "Community 105" +Cohesion: 0.21 +Nodes (10): MetricsTimer, Context manager for timing operations, Time a job processing stage, Time an AI service request, Time a storage operation, Time a Celery task execution, time_ai_request(), time_celery_task() (+2 more) + +### Community 106 - "Community 106" +Cohesion: 0.49 +Nodes (12): deploy_backend(), deploy_frontend(), display_status(), main(), preflight_checks(), print_error(), print_header(), print_info() (+4 more) + +### Community 107 - "Community 107" +Cohesion: 0.50 +Nodes (12): build_and_deploy_frontend(), display_summary(), main(), preflight_checks(), print_error(), print_header(), print_info(), print_success() (+4 more) + +### Community 108 - "Community 108" +Cohesion: 0.17 +Nodes (9): create_freeze_segment(), Request for creating a freeze-frame video with audio., Extract a video segment using ffmpeg (stream copy - for overlay method)., Create a freeze-frame video segment with audio overlay (for overlay method)., Create freeze frame that rigidly matches the source video properties. T, Create freeze segment using local ffmpeg via Celery queue., Create freeze segment via Cloud Run FFmpeg service., Extract audio segment from video for catch-up audio. Used to extract th (+1 more) + +### Community 109 - "Community 109" +Cohesion: 0.15 +Nodes (8): Tests for VTT retiming service for pause-insert accessible videos., Test VTT retiming with actual_freeze_duration field., Should use actual_freeze_duration instead of calculated value., Should use calculated value when actual_freeze_duration not provided., Should handle mix of actual and calculated freeze durations., Cue spanning pause should use actual_freeze_duration for split timing., retimer(), TestVTTRetimerActualFreezeDuration + +### Community 110 - "Community 110" +Cohesion: 0.17 +Nodes (12): _delete_gcs_temp(), _get_cloud_run_id_token(), Transcribe audio using local Whisper service., Run Whisper transcription - via Cloud Run if configured, otherwise locally., Get an ID token for authenticating to Cloud Run services. Uses the service, Upload local audio file to GCS temporary location and return GCS URI., Delete temporary GCS file., Transcribe audio via Cloud Run Whisper service. Uploads local audio to GCS (+4 more) + +### Community 111 - "Community 111" +Cohesion: 0.30 +Nodes (8): CreateUserModal(), UserList(), useCreateUser(), useDeactivateUser(), useResetUserPassword(), useUsers(), CreateUserRequest, UpdateUserRequest + +### Community 112 - "Community 112" +Cohesion: 0.33 +Nodes (11): adjust_timing_offset(), build(), get_cue_count(), get_total_duration(), parse(), _parse_timestamp(), translate_preserving_timing(), update_cue_text() (+3 more) + +### Community 113 - "Community 113" +Cohesion: 0.20 +Nodes (12): Cloud Run API Service, Cloud Build HTTP Services Pipeline, Cloud Build Main Pipeline, Cloud Run Deployment README, Accessible Video API Service, FFmpeg Video Processing Service, TTS Worker Service, Whisper Transcription Service (+4 more) + +### Community 114 - "Community 114" +Cohesion: 0.23 +Nodes (11): create_secrets(), generate_secure_key(), list_secrets(), main(), List all existing secrets in the project., Test secret retrieval to ensure everything is working., Main CLI entry point., Generate a cryptographically secure random key. (+3 more) + +### Community 115 - "Community 115" +Cohesion: 0.18 +Nodes (11): Response model for pause point refinement., Refine Gemini pause points using Whisper transcript analysis. This endpoint, Request model for transcription endpoint., Request model for pause point refinement., refine_pause_points(), RefinePausePointsRequest, RefinePausePointsResponse, TranscribeRequest (+3 more) + +### Community 116 - "Community 116" +Cohesion: 0.24 +Nodes (5): ElevenLabs Voice Catalog Service. Fetches and caches available voices from the, Structured voice data from ElevenLabs., Fetch voices from ElevenLabs API with in-memory cache (1-hour TTL). Fall, Fetch voices from the ElevenLabs API., Look up a specific voice by ID. + +### Community 117 - "Community 117" +Cohesion: 0.18 +Nodes (10): auth_provider_x509_cert_url, auth_uri, client_email, client_id, client_x509_cert_url, private_key, project_id, token_uri (+2 more) + +### Community 118 - "Community 118" +Cohesion: 0.18 +Nodes (11): Jobs API Endpoints, FastAPI Backend Application, GCP Secret Manager, FastAPI Backend, MongoDB Atlas, React SPA (TypeScript + Vite), FastAPI 0.115.0, Motor AsyncIOMotor (+3 more) + +### Community 119 - "Community 119" +Cohesion: 0.20 +Nodes (6): Migration, Migrate audit log schema from basic to comprehensive format., Rollback to old audit log schema format (limited)., Migrate existing audit logs to new schema format., Map old action strings to new AuditAction enum values., Update audit log schema to comprehensive format. + +### Community 120 - "Community 120" +Cohesion: 0.51 +Nodes (9): display_status(), main(), preflight_checks(), print_error(), print_header(), print_info(), print_success(), start_services() (+1 more) + +### Community 121 - "Community 121" +Cohesion: 0.22 +Nodes (4): TTSService, test_synthesize_no_service_configured(), tts_service_elevenlabs(), tts_service_google() + +### Community 122 - "Community 122" +Cohesion: 0.29 +Nodes (10): canRun(), continue(), execute(), find(), isFocused(), onFocus(), onOnline(), refetch() (+2 more) + +### Community 123 - "Community 123" +Cohesion: 0.20 +Nodes (10): record(), Synthesize a single cue's text to audio. Returns: Tuple of (audio_b, Upload a cue's audio to GCS. Path convention: gs://{bucket}/{job_id}/{langu, Run an async coroutine in a sync context., Synthesize a single AD cue and upload to GCS immediately. This task runs on, _record_tts_cost(), _run_async(), synthesize_cue_task() (+2 more) + +### Community 124 - "Community 124" +Cohesion: 0.29 +Nodes (6): RateLimitMiddleware, Get client identifier for rate limiting., Get endpoint pattern for rate limiting., Get rate limit for the current request., Process rate limiting for the request., FastAPI middleware for rate limiting. + +### Community 125 - "Community 125" +Cohesion: 0.20 +Nodes (10): middleware/rate_limiting.py, R-04: Per-Language QC, R-05: Translation and TTS, Celery Workers, Google Translate, Redis Queue, SendGrid Email, Text-to-Speech Service (+2 more) + +### Community 126 - "Community 126" +Cohesion: 0.58 +Nodes (9): deploy_to_apache(), display_summary(), main(), preflight_checks(), print_error(), print_header(), print_info(), print_success() (+1 more) + +### Community 127 - "Community 127" +Cohesion: 0.22 +Nodes (6): Generate MP3 audio from audio description VTT content AND return individual segm, Represents a synthesized audio segment for a single AD cue., Generate MP3 using ElevenLabs TTS, Synthesize text using ElevenLabs API, Get ElevenLabs voice ID for language, TTSCueSegment + +### Community 128 - "Community 128" +Cohesion: 0.28 +Nodes (7): AuditLogCreate, Schema for creating audit log entries., Task, NotifyClientTask, Async task for client notifications, Celery task wrapper for client notification, Pipeline 3: Client Notification Triggered when job status changes to 'co + +### Community 129 - "Community 129" +Cohesion: 0.22 +Nodes (5): Migration, Update user collection schema validator for PRODUCTION role and nullable passwor, Update the users collection validator., Update MongoDB schema validator to support production role and Microsoft users., Revert to previous validator (client, reviewer, admin only). + +### Community 130 - "Community 130" +Cohesion: 0.22 +Nodes (5): Migration, Initial database schema setup migration., Create initial collections and indexes., Drop all collections (destructive - use with caution)., Initial schema setup with all collections and indexes. + +### Community 131 - "Community 131" +Cohesion: 0.22 +Nodes (5): Migration, Index optimization migration for improved query performance., Remove the optimized indexes., Add optimized indexes for common query patterns., Optimize indexes for better query performance. + +### Community 132 - "Community 132" +Cohesion: 0.22 +Nodes (5): Migration, Add tts_failed and render_failed statuses to jobs collection validator. These s, Update MongoDB schema validator to support tts_failed and render_failed statuses, Update the jobs collection validator to include failed statuses., Revert to previous validator (without failed statuses). + +### Community 133 - "Community 133" +Cohesion: 0.22 +Nodes (5): Migration, Add linguist role to user collection schema validator., Update the users collection validator., Update MongoDB schema validator to support linguist role., Revert to validator without linguist role. + +### Community 134 - "Community 134" +Cohesion: 0.22 +Nodes (5): Migration, Add project_manager role to user collection schema validator., Update the users collection validator., Update MongoDB schema validator to support project_manager role., Revert to validator without project_manager role. + +### Community 135 - "Community 135" +Cohesion: 0.22 +Nodes (9): _download_from_gcs(), _parse_gcs_uri(), Parse GCS URI into bucket and blob path., Download file from GCS to local path., Transcribe audio file from GCS and return word-level timestamps. This endpo, Response model for transcription endpoint., transcribe(), TranscribeResponse (+1 more) + +### Community 136 - "Community 136" +Cohesion: 0.25 +Nodes (3): ErrorBoundary, Props, State + +### Community 137 - "Community 137" +Cohesion: 0.29 +Nodes (6): Apply request validation middleware., validation_middleware(), create_validation_middleware(), Enhanced request validation middleware., FastAPI middleware for enhanced request validation., Factory function to create validation middleware. + +### Community 138 - "Community 138" +Cohesion: 0.29 +Nodes (4): Migration, Add auth_provider field to users collection., Remove auth_provider field from all users., Add auth_provider field to support Microsoft authentication. + +### Community 139 - "Community 139" +Cohesion: 0.29 +Nodes (7): main(), Test downloading directly from GCS (bypass signed URL)., Test the complete MP3 serving pipeline., test_direct_gcs_download(), get_signed_download_url(), test_get_signed_download_url(), get_job_downloads() + +### Community 141 - "Community 141" +Cohesion: 0.29 +Nodes (6): audio_description_vtt, captions_vtt, confidence, language, summary, transcript_plaintext + +### Community 142 - "Community 142" +Cohesion: 0.43 +Nodes (6): AssetValidationService, Service for validating job assets before completion, validate_job_assets(), _validate_mp3_asset(), _validate_video_asset(), _validate_vtt_asset() + +### Community 143 - "Community 143" +Cohesion: 0.29 +Nodes (4): Test VTTCue dataclass, Test creating a VTT cue, Test creating a VTT cue without identifier, TestVTTCue + +### Community 144 - "Community 144" +Cohesion: 0.29 +Nodes (4): IPWhitelist, IP whitelist for bypassing rate limits., Check if IP is whitelisted., Remove IP from whitelist. + +### Community 145 - "Community 145" +Cohesion: 0.29 +Nodes (5): RateLimiter, Redis-based rate limiter with sliding window algorithm., Check if request is allowed under rate limit. Returns:, Track rate limiting metrics, track_rate_limit_metrics() + +### Community 146 - "Community 146" +Cohesion: 0.29 +Nodes (4): Migration, Add approved_source and qc_feedback statuses to jobs collection validator., Revert to previous validator (without approved_source and qc_feedback)., Update MongoDB schema validator to support approved_source and qc_feedback statu + +### Community 147 - "Community 147" +Cohesion: 0.29 +Nodes (3): Convert VTT timestamp to seconds, Parse audio description VTT and extract timing + text, Convert VTT timestamp to seconds + +### Community 148 - "Community 148" +Cohesion: 0.29 +Nodes (6): get_settings(), Get settings instance - for dependency injection, get_settings_cached(), Get settings instance (synchronous)., Get cached settings instance., Get setting value from Settings object or environment variable. + +### Community 149 - "Community 149" +Cohesion: 0.29 +Nodes (7): Transcribe audio and identify speech gaps for pause point placement. This e, Speech gap in response., Request model for transcription with gap analysis., Response model for transcription with gap analysis., SpeechGapResponse, transcribe_with_gaps(), TranscribeWithGapsResponse + +### Community 152 - "Community 152" +Cohesion: 0.33 +Nodes (5): Job, JobDownloadsResponse, JobStatus, LoginRequest, LoginResponse + +### Community 153 - "Community 153" +Cohesion: 0.33 +Nodes (4): Middleware package for FastAPI application., create_rate_limit_middleware(), Rate limiting middleware for API endpoints., Factory function to create rate limit middleware. + +### Community 159 - "Community 159" +Cohesion: 0.33 +Nodes (6): _get_ffmpeg_version(), health_check(), HealthResponse, Health check response., Get FFmpeg version string., Health check endpoint. + +### Community 160 - "Community 160" +Cohesion: 0.33 +Nodes (4): Test Gemini AI service functionality, Test successful prompt loading, Test prompt loading with missing file, TestGeminiService + +### Community 162 - "Community 162" +Cohesion: 0.40 +Nodes (4): Test database dependency injection., Test simple endpoint without dependencies., test_db_endpoint(), test_simple_endpoint() + +### Community 164 - "Community 164" +Cohesion: 0.50 +Nodes (4): generate_zip_filename(), Generate zip filename with current datetime., bulk_download_jobs(), Generate a zip file containing all downloadable assets from specified jobs. + +### Community 168 - "Community 168" +Cohesion: 0.50 +Nodes (4): Dependency: ensures the current user is an Admin or PM for the given client., require_pm_for_client(), Dependency: admin or PM of this client., _require_client_staff() + +### Community 169 - "Community 169" +Cohesion: 0.50 +Nodes (4): health_check(), HealthResponse, Health check response., Health check endpoint. + +### Community 171 - "Community 171" +Cohesion: 0.67 +Nodes (3): WebSocket API Endpoints, services/websocket.py, hooks/useJobStatusWebSocket.ts + +### Community 172 - "Community 172" +Cohesion: 0.67 +Nodes (3): Authentication API Endpoints, core/dependencies.py, core/security.py + +### Community 174 - "Community 174" +Cohesion: 0.67 +Nodes (3): Cloud Build SPA Pipeline, Frontend index.html, frontend/src/main.tsx + +## Knowledge Gaps +- **427 isolated node(s):** `tsBuildInfoFile`, `target`, `lib`, `module`, `skipLibCheck` (+422 more) + These have ≤1 connection - possible missing edges or undocumented components. +- **132 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes. + +## Suggested Questions +_Questions this graph is uniquely positioned to answer:_ + +- **Why does `set()` connect `Community 3` to `Community 0`, `Community 2`, `Community 6`, `Community 8`, `Community 12`, `Community 13`, `Community 15`, `Community 17`, `Community 18`, `Community 25`, `Community 28`, `Community 32`, `Community 45`, `Community 46`, `Community 48`, `Community 79`, `Community 98`, `Community 101`, `Community 102`?** + _High betweenness centrality (0.255) - this node is a cross-community bridge._ +- **Why does `create_refresh_token()` connect `Community 38` to `Community 81`, `Community 26`, `Community 13`, `Community 31`?** + _High betweenness centrality (0.104) - this node is a cross-community bridge._ +- **Why does `get_database()` connect `Community 53` to `Community 101`, `Community 44`, `Community 77`, `Community 47`, `Community 48`, `Community 22`, `Community 31`?** + _High betweenness centrality (0.092) - this node is a cross-community bridge._ +- **What connects `tsBuildInfoFile`, `target`, `lib` to the rest of the system?** + _1248 weakly-connected nodes found - possible documentation gaps or missing edges._ +- **Should `Community 0` be split into smaller, more focused modules?** + _Cohesion score 0.01099760921538796 - nodes in this community are weakly interconnected._ +- **Should `Community 1` be split into smaller, more focused modules?** + _Cohesion score 0.03287128712871287 - nodes in this community are weakly interconnected._ +- **Should `Community 2` be split into smaller, more focused modules?** + _Cohesion score 0.056654456654456654 - nodes in this community are weakly interconnected._ \ No newline at end of file diff --git a/wiki/architecture/video-accessibility-structure.md b/wiki/architecture/video-accessibility-structure.md new file mode 100644 index 0000000..d523dd9 --- /dev/null +++ b/wiki/architecture/video-accessibility-structure.md @@ -0,0 +1,1027 @@ +--- +tags: [architecture, graphify, video-accessibility] +updated: 2026-05-18 +--- + +# Graph Report - /Users/ai_leed/Documents/Projects/Oliver/video-accessibility (2026-05-18) + +## Corpus Check +- cluster-only mode — file stats not available + +## Summary +- 3843 nodes · 7213 edges · 317 communities (183 shown, 134 thin omitted) +- Extraction: 86% EXTRACTED · 14% INFERRED · 0% AMBIGUOUS · INFERRED: 1028 edges (avg confidence: 0.63) +- Token cost: 0 input · 0 output + +## Graph Freshness +- Built from commit: `54eddd70` +- Run `git rev-parse HEAD` and compare to check if the graph is stale. +- Run `graphify update .` after code changes (no API cost). + +## Community Hubs (Navigation) +- [[_COMMUNITY_Community 0|Community 0]] +- [[_COMMUNITY_Community 1|Community 1]] +- [[_COMMUNITY_Community 2|Community 2]] +- [[_COMMUNITY_Community 3|Community 3]] +- [[_COMMUNITY_Community 4|Community 4]] +- [[_COMMUNITY_Community 5|Community 5]] +- [[_COMMUNITY_Community 6|Community 6]] +- [[_COMMUNITY_Community 7|Community 7]] +- [[_COMMUNITY_Community 8|Community 8]] +- [[_COMMUNITY_Community 9|Community 9]] +- [[_COMMUNITY_Community 10|Community 10]] +- [[_COMMUNITY_Community 11|Community 11]] +- [[_COMMUNITY_Community 12|Community 12]] +- [[_COMMUNITY_Community 13|Community 13]] +- [[_COMMUNITY_Community 14|Community 14]] +- [[_COMMUNITY_Community 15|Community 15]] +- [[_COMMUNITY_Community 16|Community 16]] +- [[_COMMUNITY_Community 17|Community 17]] +- [[_COMMUNITY_Community 18|Community 18]] +- [[_COMMUNITY_Community 19|Community 19]] +- [[_COMMUNITY_Community 20|Community 20]] +- [[_COMMUNITY_Community 21|Community 21]] +- [[_COMMUNITY_Community 22|Community 22]] +- [[_COMMUNITY_Community 23|Community 23]] +- [[_COMMUNITY_Community 24|Community 24]] +- [[_COMMUNITY_Community 25|Community 25]] +- [[_COMMUNITY_Community 26|Community 26]] +- [[_COMMUNITY_Community 27|Community 27]] +- [[_COMMUNITY_Community 28|Community 28]] +- [[_COMMUNITY_Community 29|Community 29]] +- [[_COMMUNITY_Community 30|Community 30]] +- [[_COMMUNITY_Community 31|Community 31]] +- [[_COMMUNITY_Community 32|Community 32]] +- [[_COMMUNITY_Community 33|Community 33]] +- [[_COMMUNITY_Community 34|Community 34]] +- [[_COMMUNITY_Community 35|Community 35]] +- [[_COMMUNITY_Community 36|Community 36]] +- [[_COMMUNITY_Community 37|Community 37]] +- [[_COMMUNITY_Community 38|Community 38]] +- [[_COMMUNITY_Community 39|Community 39]] +- [[_COMMUNITY_Community 40|Community 40]] +- [[_COMMUNITY_Community 41|Community 41]] +- [[_COMMUNITY_Community 42|Community 42]] +- [[_COMMUNITY_Community 43|Community 43]] +- [[_COMMUNITY_Community 44|Community 44]] +- [[_COMMUNITY_Community 45|Community 45]] +- [[_COMMUNITY_Community 46|Community 46]] +- [[_COMMUNITY_Community 47|Community 47]] +- [[_COMMUNITY_Community 48|Community 48]] +- [[_COMMUNITY_Community 49|Community 49]] +- [[_COMMUNITY_Community 50|Community 50]] +- [[_COMMUNITY_Community 51|Community 51]] +- [[_COMMUNITY_Community 52|Community 52]] +- [[_COMMUNITY_Community 53|Community 53]] +- [[_COMMUNITY_Community 54|Community 54]] +- [[_COMMUNITY_Community 55|Community 55]] +- [[_COMMUNITY_Community 56|Community 56]] +- [[_COMMUNITY_Community 57|Community 57]] +- [[_COMMUNITY_Community 58|Community 58]] +- [[_COMMUNITY_Community 59|Community 59]] +- [[_COMMUNITY_Community 60|Community 60]] +- [[_COMMUNITY_Community 61|Community 61]] +- [[_COMMUNITY_Community 62|Community 62]] +- [[_COMMUNITY_Community 63|Community 63]] +- [[_COMMUNITY_Community 64|Community 64]] +- [[_COMMUNITY_Community 65|Community 65]] +- [[_COMMUNITY_Community 66|Community 66]] +- [[_COMMUNITY_Community 67|Community 67]] +- [[_COMMUNITY_Community 68|Community 68]] +- [[_COMMUNITY_Community 69|Community 69]] +- [[_COMMUNITY_Community 70|Community 70]] +- [[_COMMUNITY_Community 71|Community 71]] +- [[_COMMUNITY_Community 72|Community 72]] +- [[_COMMUNITY_Community 73|Community 73]] +- [[_COMMUNITY_Community 74|Community 74]] +- [[_COMMUNITY_Community 75|Community 75]] +- [[_COMMUNITY_Community 76|Community 76]] +- [[_COMMUNITY_Community 77|Community 77]] +- [[_COMMUNITY_Community 78|Community 78]] +- [[_COMMUNITY_Community 79|Community 79]] +- [[_COMMUNITY_Community 80|Community 80]] +- [[_COMMUNITY_Community 81|Community 81]] +- [[_COMMUNITY_Community 82|Community 82]] +- [[_COMMUNITY_Community 83|Community 83]] +- [[_COMMUNITY_Community 84|Community 84]] +- [[_COMMUNITY_Community 85|Community 85]] +- [[_COMMUNITY_Community 86|Community 86]] +- [[_COMMUNITY_Community 87|Community 87]] +- [[_COMMUNITY_Community 88|Community 88]] +- [[_COMMUNITY_Community 89|Community 89]] +- [[_COMMUNITY_Community 90|Community 90]] +- [[_COMMUNITY_Community 91|Community 91]] +- [[_COMMUNITY_Community 92|Community 92]] +- [[_COMMUNITY_Community 93|Community 93]] +- [[_COMMUNITY_Community 94|Community 94]] +- [[_COMMUNITY_Community 95|Community 95]] +- [[_COMMUNITY_Community 96|Community 96]] +- [[_COMMUNITY_Community 97|Community 97]] +- [[_COMMUNITY_Community 98|Community 98]] +- [[_COMMUNITY_Community 99|Community 99]] +- [[_COMMUNITY_Community 100|Community 100]] +- [[_COMMUNITY_Community 101|Community 101]] +- [[_COMMUNITY_Community 102|Community 102]] +- [[_COMMUNITY_Community 103|Community 103]] +- [[_COMMUNITY_Community 104|Community 104]] +- [[_COMMUNITY_Community 105|Community 105]] +- [[_COMMUNITY_Community 106|Community 106]] +- [[_COMMUNITY_Community 107|Community 107]] +- [[_COMMUNITY_Community 108|Community 108]] +- [[_COMMUNITY_Community 109|Community 109]] +- [[_COMMUNITY_Community 110|Community 110]] +- [[_COMMUNITY_Community 111|Community 111]] +- [[_COMMUNITY_Community 112|Community 112]] +- [[_COMMUNITY_Community 113|Community 113]] +- [[_COMMUNITY_Community 114|Community 114]] +- [[_COMMUNITY_Community 115|Community 115]] +- [[_COMMUNITY_Community 116|Community 116]] +- [[_COMMUNITY_Community 117|Community 117]] +- [[_COMMUNITY_Community 118|Community 118]] +- [[_COMMUNITY_Community 119|Community 119]] +- [[_COMMUNITY_Community 120|Community 120]] +- [[_COMMUNITY_Community 121|Community 121]] +- [[_COMMUNITY_Community 122|Community 122]] +- [[_COMMUNITY_Community 123|Community 123]] +- [[_COMMUNITY_Community 124|Community 124]] +- [[_COMMUNITY_Community 125|Community 125]] +- [[_COMMUNITY_Community 126|Community 126]] +- [[_COMMUNITY_Community 127|Community 127]] +- [[_COMMUNITY_Community 128|Community 128]] +- [[_COMMUNITY_Community 129|Community 129]] +- [[_COMMUNITY_Community 130|Community 130]] +- [[_COMMUNITY_Community 131|Community 131]] +- [[_COMMUNITY_Community 132|Community 132]] +- [[_COMMUNITY_Community 133|Community 133]] +- [[_COMMUNITY_Community 134|Community 134]] +- [[_COMMUNITY_Community 135|Community 135]] +- [[_COMMUNITY_Community 136|Community 136]] +- [[_COMMUNITY_Community 137|Community 137]] +- [[_COMMUNITY_Community 138|Community 138]] +- [[_COMMUNITY_Community 139|Community 139]] +- [[_COMMUNITY_Community 140|Community 140]] +- [[_COMMUNITY_Community 141|Community 141]] +- [[_COMMUNITY_Community 142|Community 142]] +- [[_COMMUNITY_Community 143|Community 143]] +- [[_COMMUNITY_Community 144|Community 144]] +- [[_COMMUNITY_Community 145|Community 145]] +- [[_COMMUNITY_Community 146|Community 146]] +- [[_COMMUNITY_Community 147|Community 147]] +- [[_COMMUNITY_Community 148|Community 148]] +- [[_COMMUNITY_Community 149|Community 149]] +- [[_COMMUNITY_Community 150|Community 150]] +- [[_COMMUNITY_Community 151|Community 151]] +- [[_COMMUNITY_Community 152|Community 152]] +- [[_COMMUNITY_Community 153|Community 153]] +- [[_COMMUNITY_Community 154|Community 154]] +- [[_COMMUNITY_Community 155|Community 155]] +- [[_COMMUNITY_Community 156|Community 156]] +- [[_COMMUNITY_Community 157|Community 157]] +- [[_COMMUNITY_Community 158|Community 158]] +- [[_COMMUNITY_Community 159|Community 159]] +- [[_COMMUNITY_Community 160|Community 160]] +- [[_COMMUNITY_Community 161|Community 161]] +- [[_COMMUNITY_Community 162|Community 162]] +- [[_COMMUNITY_Community 163|Community 163]] +- [[_COMMUNITY_Community 164|Community 164]] +- [[_COMMUNITY_Community 165|Community 165]] +- [[_COMMUNITY_Community 166|Community 166]] +- [[_COMMUNITY_Community 167|Community 167]] +- [[_COMMUNITY_Community 168|Community 168]] +- [[_COMMUNITY_Community 169|Community 169]] +- [[_COMMUNITY_Community 170|Community 170]] +- [[_COMMUNITY_Community 171|Community 171]] +- [[_COMMUNITY_Community 172|Community 172]] +- [[_COMMUNITY_Community 173|Community 173]] +- [[_COMMUNITY_Community 174|Community 174]] +- [[_COMMUNITY_Community 176|Community 176]] +- [[_COMMUNITY_Community 177|Community 177]] +- [[_COMMUNITY_Community 178|Community 178]] +- [[_COMMUNITY_Community 180|Community 180]] +- [[_COMMUNITY_Community 181|Community 181]] +- [[_COMMUNITY_Community 182|Community 182]] +- [[_COMMUNITY_Community 183|Community 183]] +- [[_COMMUNITY_Community 184|Community 184]] +- [[_COMMUNITY_Community 200|Community 200]] +- [[_COMMUNITY_Community 201|Community 201]] +- [[_COMMUNITY_Community 202|Community 202]] +- [[_COMMUNITY_Community 203|Community 203]] +- [[_COMMUNITY_Community 204|Community 204]] +- [[_COMMUNITY_Community 205|Community 205]] +- [[_COMMUNITY_Community 206|Community 206]] +- [[_COMMUNITY_Community 207|Community 207]] +- [[_COMMUNITY_Community 208|Community 208]] +- [[_COMMUNITY_Community 209|Community 209]] +- [[_COMMUNITY_Community 210|Community 210]] +- [[_COMMUNITY_Community 211|Community 211]] +- [[_COMMUNITY_Community 212|Community 212]] +- [[_COMMUNITY_Community 213|Community 213]] +- [[_COMMUNITY_Community 214|Community 214]] +- [[_COMMUNITY_Community 215|Community 215]] +- [[_COMMUNITY_Community 216|Community 216]] +- [[_COMMUNITY_Community 217|Community 217]] +- [[_COMMUNITY_Community 218|Community 218]] +- [[_COMMUNITY_Community 219|Community 219]] +- [[_COMMUNITY_Community 220|Community 220]] +- [[_COMMUNITY_Community 221|Community 221]] +- [[_COMMUNITY_Community 222|Community 222]] +- [[_COMMUNITY_Community 223|Community 223]] +- [[_COMMUNITY_Community 224|Community 224]] +- [[_COMMUNITY_Community 225|Community 225]] +- [[_COMMUNITY_Community 226|Community 226]] +- [[_COMMUNITY_Community 227|Community 227]] +- [[_COMMUNITY_Community 228|Community 228]] +- [[_COMMUNITY_Community 229|Community 229]] +- [[_COMMUNITY_Community 230|Community 230]] +- [[_COMMUNITY_Community 231|Community 231]] +- [[_COMMUNITY_Community 232|Community 232]] +- [[_COMMUNITY_Community 233|Community 233]] +- [[_COMMUNITY_Community 234|Community 234]] +- [[_COMMUNITY_Community 235|Community 235]] +- [[_COMMUNITY_Community 236|Community 236]] +- [[_COMMUNITY_Community 238|Community 238]] +- [[_COMMUNITY_Community 239|Community 239]] +- [[_COMMUNITY_Community 240|Community 240]] +- [[_COMMUNITY_Community 241|Community 241]] +- [[_COMMUNITY_Community 242|Community 242]] +- [[_COMMUNITY_Community 243|Community 243]] +- [[_COMMUNITY_Community 244|Community 244]] +- [[_COMMUNITY_Community 245|Community 245]] +- [[_COMMUNITY_Community 246|Community 246]] +- [[_COMMUNITY_Community 247|Community 247]] +- [[_COMMUNITY_Community 248|Community 248]] +- [[_COMMUNITY_Community 249|Community 249]] +- [[_COMMUNITY_Community 250|Community 250]] +- [[_COMMUNITY_Community 251|Community 251]] +- [[_COMMUNITY_Community 252|Community 252]] +- [[_COMMUNITY_Community 253|Community 253]] +- [[_COMMUNITY_Community 254|Community 254]] +- [[_COMMUNITY_Community 255|Community 255]] +- [[_COMMUNITY_Community 256|Community 256]] +- [[_COMMUNITY_Community 257|Community 257]] +- [[_COMMUNITY_Community 258|Community 258]] +- [[_COMMUNITY_Community 259|Community 259]] +- [[_COMMUNITY_Community 260|Community 260]] +- [[_COMMUNITY_Community 261|Community 261]] +- [[_COMMUNITY_Community 262|Community 262]] +- [[_COMMUNITY_Community 263|Community 263]] +- [[_COMMUNITY_Community 264|Community 264]] +- [[_COMMUNITY_Community 265|Community 265]] +- [[_COMMUNITY_Community 266|Community 266]] +- [[_COMMUNITY_Community 267|Community 267]] +- [[_COMMUNITY_Community 268|Community 268]] +- [[_COMMUNITY_Community 269|Community 269]] +- [[_COMMUNITY_Community 270|Community 270]] +- [[_COMMUNITY_Community 271|Community 271]] +- [[_COMMUNITY_Community 272|Community 272]] +- [[_COMMUNITY_Community 273|Community 273]] +- [[_COMMUNITY_Community 274|Community 274]] +- [[_COMMUNITY_Community 275|Community 275]] +- [[_COMMUNITY_Community 276|Community 276]] +- [[_COMMUNITY_Community 277|Community 277]] +- [[_COMMUNITY_Community 278|Community 278]] +- [[_COMMUNITY_Community 279|Community 279]] +- [[_COMMUNITY_Community 280|Community 280]] +- [[_COMMUNITY_Community 281|Community 281]] +- [[_COMMUNITY_Community 282|Community 282]] +- [[_COMMUNITY_Community 283|Community 283]] +- [[_COMMUNITY_Community 284|Community 284]] +- [[_COMMUNITY_Community 285|Community 285]] +- [[_COMMUNITY_Community 286|Community 286]] +- [[_COMMUNITY_Community 287|Community 287]] +- [[_COMMUNITY_Community 288|Community 288]] +- [[_COMMUNITY_Community 289|Community 289]] +- [[_COMMUNITY_Community 290|Community 290]] +- [[_COMMUNITY_Community 291|Community 291]] +- [[_COMMUNITY_Community 292|Community 292]] +- [[_COMMUNITY_Community 293|Community 293]] +- [[_COMMUNITY_Community 294|Community 294]] +- [[_COMMUNITY_Community 295|Community 295]] +- [[_COMMUNITY_Community 298|Community 298]] +- [[_COMMUNITY_Community 299|Community 299]] +- [[_COMMUNITY_Community 300|Community 300]] +- [[_COMMUNITY_Community 301|Community 301]] +- [[_COMMUNITY_Community 302|Community 302]] +- [[_COMMUNITY_Community 303|Community 303]] +- [[_COMMUNITY_Community 304|Community 304]] +- [[_COMMUNITY_Community 305|Community 305]] +- [[_COMMUNITY_Community 306|Community 306]] +- [[_COMMUNITY_Community 307|Community 307]] +- [[_COMMUNITY_Community 308|Community 308]] +- [[_COMMUNITY_Community 309|Community 309]] +- [[_COMMUNITY_Community 310|Community 310]] +- [[_COMMUNITY_Community 311|Community 311]] +- [[_COMMUNITY_Community 312|Community 312]] +- [[_COMMUNITY_Community 313|Community 313]] +- [[_COMMUNITY_Community 314|Community 314]] +- [[_COMMUNITY_Community 315|Community 315]] +- [[_COMMUNITY_Community 316|Community 316]] + +## God Nodes (most connected - your core abstractions) +1. `ApiClient` - 155 edges +2. `UserRole` - 62 edges +3. `useClients()` - 55 edges +4. `get_job_or_403()` - 55 edges +5. `User` - 51 edges +6. `RequestedOutputs` - 44 edges +7. `VTTEditor` - 41 edges +8. `JobStatus` - 40 edges +9. `VideoRendererService` - 39 edges +10. `useAuthStore` - 37 edges + +## Surprising Connections (you probably didn't know these) +- `QC List Screenshot` --references--> `React Frontend SPA` [INFERRED] + qc-list.png → .archive/source-docs-2026-04-29/original/README.md +- `Help Admin Screenshot Visible` --references--> `Role-Based Access Control` [INFERRED] + help-admin-screenshot-visible.png → .archive/source-docs-2026-04-29/original/README.md +- `Gemini AI Service (README)` --semantically_similar_to--> `Gemini 2.5 Pro AI Service` [INFERRED] [semantically similar] + README.md → video_accessibility_development_plan.txt +- `New Job Translation Banner Screenshot` --references--> `Translation Pipeline` [INFERRED] + new-job-translation-banner.png → .archive/source-docs-2026-04-29/original/README.md +- `New Job Scrolled Screenshot` --references--> `React Frontend SPA` [INFERRED] + new-job-scrolled.png → .archive/source-docs-2026-04-29/original/README.md + +## Communities (317 total, 134 thin omitted) + +### Community 0 - "Community 0" +Cohesion: 0.03 +Nodes (86): ACTION_GROUPS, SEVERITY_COLORS, Tab, VoicePreviewButtonProps, VoiceSelector(), GlossaryList(), bytesLabel(), KIND_LABELS (+78 more) + +### Community 1 - "Community 1" +Cohesion: 0.03 +Nodes (19): ApiClient, getCsrfToken(), Upload a hand-crafted VTT to override AI output and advance job to PENDING_QC., Return users who can be assigned a brief (PM, production, admin). Accessible to, Get system statistics (production/admin only), Force reprocessing of a job (production/admin emergency function), Get audit logs for a specific user — accepts user ID or email (production/admin, Get recent security events (production/admin only) (+11 more) + +### Community 2 - "Community 2" +Cohesion: 0.05 +Nodes (62): ClientDetail(), ClientList(), UserAssignmentsPanel(), UserDetail(), CreateUserModal(), UserList(), ALL_LANGUAGES, NewBrief() (+54 more) + +### Community 3 - "Community 3" +Cohesion: 0.04 +Nodes (52): Ingest and AI Task, _download_from_gcs(), health_check(), HealthResponse, _parse_gcs_uri(), Whisper HTTP Service - FastAPI application for Cloud Run deployment. This servi, Response model for pause point refinement., Health check response. (+44 more) + +### Community 4 - "Community 4" +Cohesion: 0.06 +Nodes (38): VTT Retimer, Config, Microsoft Authentication Service Validates Microsoft ID tokens and extracts use, Render accessible video based on Gemini analysis. Args: sou, Service for re-timing VTT files when pauses are inserted into video., _download_blob(), generate_zip_stream(), Zip download service for bulk job downloads. Generates streaming zip files cont (+30 more) + +### Community 5 - "Community 5" +Cohesion: 0.04 +Nodes (57): _cached_memberships(), get_membership_context(), _load_memberships(), Central authorization module (Phase 3 SaaS). Provides: - MembershipContext —, Dependency factory: ensures the current user has at least `min_role` in the, Dependency: platform admin only., Load memberships from DB., Load memberships, with Redis cache (60s TTL). (+49 more) + +### Community 6 - "Community 6" +Cohesion: 0.05 +Nodes (62): accessible-video-api Docker Image, accessible-video-whisper-worker Docker Image, accessible-video-worker Docker Image, Cloud Build CI/CD Pipeline, AI Cost Tracker Service, GCP Cloud Build, Google Cloud Run, GCP Secret Manager (+54 more) + +### Community 7 - "Community 7" +Cohesion: 0.04 +Nodes (44): AccessibleVideoEditState, AISection, Config, Job, JobCreate, JobUpdate, LanguageQCEvent, PausePointData (+36 more) + +### Community 8 - "Community 8" +Cohesion: 0.06 +Nodes (56): BaseModel, Client, ClientCreate, ClientUpdate, Project, ProjectCreate, ProjectUpdate, Team (+48 more) + +### Community 9 - "Community 9" +Cohesion: 0.05 +Nodes (48): RequireAuth(), RequireAuthProps, RoleGate(), RoleGateProps, AuthState, useAuthStore, loginRequest, msalConfig (+40 more) + +### Community 10 - "Community 10" +Cohesion: 0.06 +Nodes (58): Dashboard Screenshot, Jobs List Bulk Screenshot, QC Queue Screenshot, QC Detail Screenshot (Reviewer), QC List Screenshot, Start Work Screenshot, Approve Button Screenshot, Failures Screenshot (+50 more) + +### Community 11 - "Community 11" +Cohesion: 0.08 +Nodes (43): MembershipContext, Return all org IDs the user has any membership in., LanguageQCStatus, _AsyncIterableMock, _make_ctx(), _make_user(), Admin users org filter tests (MT-8). Verifies that list_users is scoped by org, Platform admin with ?org_id=org-x → filter restricted to that org's members. (+35 more) + +### Community 12 - "Community 12" +Cohesion: 0.07 +Nodes (54): get_job_or_403(), Load job document and verify ctx user can access its organization. Returns 404 f, JobResponse, log_job_action(), Log job-related actions., adjust_vtt_timing(), approve_english(), approve_source() (+46 more) + +### Community 13 - "Community 13" +Cohesion: 0.04 +Nodes (50): OrgScopedQuery, Helper that adds organization_id filters to MongoDB queries. Usage:, generate_descriptive_transcript(), Descriptive Transcript Service Generates a WCAG-compliant descriptive transcrip, Merge captions VTT and audio description VTT into a descriptive transcript., gcs_path(), Return a GCS object path rooted at the job's prefix. Jobs created before MT, Upload text content to GCS and return the GCS URI (+42 more) + +### Community 14 - "Community 14" +Cohesion: 0.08 +Nodes (38): FailuresList(), STEP_LABELS, FinalList(), QCList(), BriefDetail(), STATUS_BADGE, BriefsList(), Dashboard View (+30 more) + +### Community 15 - "Community 15" +Cohesion: 0.24 +Nodes (45): AccessibleVideoProgressItem, JobFailure, JobStatus, LangOutput, Progress tracking for accessible video rendering per language., TTS voice preferences for audio description generation, RequestedOutputs, Review (+37 more) + +### Community 16 - "Community 16" +Cohesion: 0.08 +Nodes (34): add_comment(), approve_language(), _assert_can_approve(), _assert_user_in_job_org(), assign_linguist(), _deep_link(), _qc_recipients(), Return [(email, full_name)] for linguist + reviewer assigned to a language, minu (+26 more) + +### Community 17 - "Community 17" +Cohesion: 0.06 +Nodes (28): ErrorBoundary, Props, State, NOTIFICATION_TYPE_ICONS, NotificationItem, NotificationProvider(), ToastContext, ToastContextType (+20 more) + +### Community 18 - "Community 18" +Cohesion: 0.06 +Nodes (42): Gemini Transcreation Prompt, Gemini TTS Rewrite Prompt, routes/AcceptInvite.tsx, tests/helpers/auth.ts, Build Health Audit — ln-622, contexts/GlobalWebSocketContext.tsx, contexts/NotificationContext.tsx, routes/admin/QCDetail.tsx (+34 more) + +### Community 19 - "Community 19" +Cohesion: 0.07 +Nodes (41): concatenate_segments(), ConcatenateRequest, _download_from_gcs(), encode_segment(), EncodeSegmentRequest, extract_frame(), ExtractFrameRequest, _get_ffmpeg_version() (+33 more) + +### Community 20 - "Community 20" +Cohesion: 0.09 +Nodes (28): Identify gaps between words that could serve as pause points. Args:, A gap between words, potential pause point., A sentence boundary (start or end) for pause point snapping. Used to determ, SentenceBoundary, SpeechGap, _boundary(), _gap(), Tests for the improved snap_pause_point algorithm (A1/A2/A3). (+20 more) + +### Community 21 - "Community 21" +Cohesion: 0.07 +Nodes (42): Auth Architecture (Token Flow), core/authz.py, core/dependencies.py, core/secrets_config.py, core/security.py, Architecture — Accessible Video Processing Platform, contexts/GlobalWebSocketContext.tsx, hooks/useJobStatusWebSocket.ts (+34 more) + +### Community 22 - "Community 22" +Cohesion: 0.09 +Nodes (29): FinalDetail(), LanguagePreview(), ApiError, LANG_QC_BADGE, LANG_QC_ICON, LANG_QC_LABEL, QCDetail(), useQueueTTSRegeneration() (+21 more) + +### Community 23 - "Community 23" +Cohesion: 0.14 +Nodes (26): AuditAction, Enumeration of auditable actions., LanguageQCComment, LanguageQCState, User, UserInDB, PM/PROD/ADMIN assigns a reviewer to a language., AddCommentRequest (+18 more) + +### Community 24 - "Community 24" +Cohesion: 0.06 +Nodes (21): main(), Test downloading directly from GCS (bypass signed URL)., Test the complete MP3 serving pipeline., test_direct_gcs_download(), create_resumable_upload_session(), GCSService, get_signed_download_url(), Create a GCS resumable upload session and return the session URI. (+13 more) + +### Community 25 - "Community 25" +Cohesion: 0.06 +Nodes (35): frontend/tailwind.config.js, Tailwind CSS v4, devDependencies, autoprefixer, eslint, @eslint/js, eslint-plugin-react-hooks, eslint-plugin-react-refresh (+27 more) + +### Community 26 - "Community 26" +Cohesion: 0.14 +Nodes (25): _assert_client_access(), _assert_pm_or_admin(), _assert_pm_or_client_member(), assign_pm(), _client_from_doc(), create_team(), deactivate_client(), delete_team() (+17 more) + +### Community 27 - "Community 27" +Cohesion: 0.08 +Nodes (6): EmailService, Sends email via Mailgun REST API (httpx, async-safe)., Render the completion email HTML template, Test email service (Mailgun-based), service(), TestEmailService + +### Community 28 - "Community 28" +Cohesion: 0.09 +Nodes (18): ConnectionManager, JobStatusUpdate, Connect a WebSocket for job list updates (all jobs for a user). ``acces, Disconnect a WebSocket and clean up subscriptions, Background task to handle Redis pub/sub messages with reconnection logic, Schema for job status update messages, Handle incoming Redis pub/sub message, Send job status update to specific job subscribers (+10 more) + +### Community 29 - "Community 29" +Cohesion: 0.08 +Nodes (24): STATUS_BADGE, StatusBadgeProps, useBulkDeleteJobs(), useBulkReturnToQC(), useCloneJob(), useDeleteJob(), useReprocessJob(), DATE_RANGE_OPTIONS (+16 more) + +### Community 30 - "Community 30" +Cohesion: 0.15 +Nodes (27): assert_job_in_user_org(), get_user_org_ids(), Return org IDs the user belongs to, or None meaning unrestricted (ADMIN). P, Raise 404 (not 403) when user cannot access this job — avoids information disclo, list_for_reviewer(), Return jobs where the reviewer is assigned to at least one language., _AsyncIterableMock, _make_db() (+19 more) + +### Community 31 - "Community 31" +Cohesion: 0.08 +Nodes (30): Admin Dashboard Screenshot, After EN Approval Screenshot, API Specification, Architecture Documentation, Database Schema Documentation, Infrastructure Documentation, Development Principles, Requirements Documentation (+22 more) + +### Community 32 - "Community 32" +Cohesion: 0.08 +Nodes (20): CONNECTION_MESSAGES, useWebSocketToastHandler(), WebSocketToastHandlerProps, GlobalWebSocketProvider(), useGlobalWebSocket(), ConnectionStatus, JobStatusUpdate, UseJobStatusWebSocketReturn (+12 more) + +### Community 33 - "Community 33" +Cohesion: 0.14 +Nodes (21): assert_user_in_org(), Raise 403 if ctx user does not have min_role in org_id. Platform admins always p, _doc_to_response(), get_brief(), list_briefs(), Job Brief CRUD endpoints., update_brief(), activate_version() (+13 more) + +### Community 34 - "Community 34" +Cohesion: 0.13 +Nodes (29): services/gemini.py, Gemini 2.5 Pro, Video Accessibility Demo User Guide, Apache Reverse Proxy, Audio Description Generation, Audit Trail and Compliance Logging, AI-Powered Caption Generation, Google Cloud Translate (+21 more) + +### Community 35 - "Community 35" +Cohesion: 0.12 +Nodes (29): tasks/translate_and_synthesize.py, Audit Logging, ElevenLabs TTS Service, Google Cloud Storage File Layout, Google Gemini 2.5 Pro Integration, Google TTS, Job Processing State Machine, JWT Authentication (+21 more) + +### Community 36 - "Community 36" +Cohesion: 0.07 +Nodes (16): Test VTT editing functionality, Test translating text while preserving timing, Test error handling for text count mismatch, Test updating a specific cue's text, Test error handling for invalid cue index, Test validation of valid VTT content, Test validation fails without WEBVTT header, Test validation catches timing errors (+8 more) + +### Community 37 - "Community 37" +Cohesion: 0.11 +Nodes (17): ABC, Database migration framework for MongoDB., down(), migrate_down(), migrate_up(), MigrationManager, MongoDB migration framework., Get list of applied migration versions. (+9 more) + +### Community 38 - "Community 38" +Cohesion: 0.09 +Nodes (28): FloatRange, get_tts_options(), LanguagesResponse, list_languages(), list_voices(), _preview_elevenlabs(), _preview_gemini(), preview_voice() (+20 more) + +### Community 39 - "Community 39" +Cohesion: 0.07 +Nodes (5): Tests for GeminiService.translate_vtt() method, Integration tests for Gemini service (requires actual API key), Test real Gemini extraction (requires setup), TestGeminiServiceIntegration, TestGeminiTranslateVtt + +### Community 40 - "Community 40" +Cohesion: 0.08 +Nodes (23): Telemetry package for OpenTelemetry tracing and metrics collection, get_tracer(), instrument_dependencies(), instrument_fastapi_app(), Decorator for tracing async operations, Decorator for tracing job pipeline stages, Decorator for tracing AI service operations, Initialize OpenTelemetry tracing for the application (+15 more) + +### Community 41 - "Community 41" +Cohesion: 0.13 +Nodes (27): AuthProvider, UserRole, AdminStatsResponse, ChangePasswordRequest, CreateUserRequest, LoginRequest, LoginResponse, LogoutResponse (+19 more) + +### Community 42 - "Community 42" +Cohesion: 0.09 +Nodes (27): Google Cloud Storage Integration, Video Accessibility Pipeline, routes_files.py - Upload Route, routes_language_qc.py - Final Review Route, Security Architecture (JWT, RBAC, HttpOnly cookies), services/emailer.py - Email Service, services/gemini.py - Gemini AI Service, services/language_qc.py - QC Service (+19 more) + +### Community 43 - "Community 43" +Cohesion: 0.11 +Nodes (17): Metadata for a video segment between pause points., VideoSegmentMetadata, FFmpegExecutionError, _get_cloud_run_id_token(), Service for rendering accessible video with embedded audio descriptions using ff, Get video properties via Cloud Run FFmpeg service., Extract a single frame as PNG using ffmpeg., Extract frame using local ffmpeg via Celery queue. (+9 more) + +### Community 44 - "Community 44" +Cohesion: 0.12 +Nodes (17): LanguageTrack, useCreateReviewNote(), useDeleteReviewNote(), useReviewNotes(), useUpdateReviewNote(), DownloadCard(), JobDownloadsResponse, LangOutput (+9 more) + +### Community 45 - "Community 45" +Cohesion: 0.09 +Nodes (18): block, { container }, freeze, makeFreezeSegment(), makeSegment(), marker, onPausePointClick, onPausePointUpdate (+10 more) + +### Community 46 - "Community 46" +Cohesion: 0.08 +Nodes (13): Utility class for editing VTT content while preserving timing, VTTEditor, endTimeInput, onChange, startTimeInput, textarea, user, GlossaryTerm (+5 more) + +### Community 47 - "Community 47" +Cohesion: 0.09 +Nodes (21): cors_error_handler(), general_exception_handler(), http_exception_handler(), lifespan(), metrics(), rate_limiting_middleware(), Ensure CORS headers are added to all responses, including errors., Handle HTTP exceptions with CORS headers (+13 more) + +### Community 48 - "Community 48" +Cohesion: 0.13 +Nodes (13): Calculate cumulative offset for timestamps AT or AFTER pause points. A, Service for re-timing VTT subtitle files after pause insertions., Retime a single cue, potentially splitting it across pause points. If a, Retime a cue that doesn't span any pause points. Start time uses offset, Generate new VTT with adjusted timings for pause-insert accessible video., Filter out segments that are too short to display meaningfully., Re-time the audio description VTT for pause-insert accessible video. Fo, Parse VTT content into a list of cue dictionaries. (+5 more) + +### Community 49 - "Community 49" +Cohesion: 0.08 +Nodes (13): Cue 8s-10s with pause at 10s should remain at 8s-10s., Cue 5s-25s with pauses at 10s and 20s should split into 3 segments., Cue 8s-12s with pause at 10s (4s freeze) should split into 8s-10s + 14s-16s., Very short segments (<100ms) should be filtered out., No placements should return original VTT unchanged., Multiple cues with a pause between them., Pause at 0.0 should shift all subsequent cues., Multiple placements at the same pause point should be handled correctly. (+5 more) + +### Community 50 - "Community 50" +Cohesion: 0.14 +Nodes (24): Artifact Registry Repository, Cloud Run Job: va-worker, va-worker Cloud Build Image, Backend Dockerfile, Celery Workers, Redis Broker/Cache, API Service (FastAPI), backend/Dockerfile (+16 more) + +### Community 51 - "Community 51" +Cohesion: 0.09 +Nodes (17): createMockFile(), mockApiResponses, invalidFile, largeFile, mockFile, mockOnDrop, onFilesSelect, user (+9 more) + +### Community 52 - "Community 52" +Cohesion: 0.09 +Nodes (12): Migration, Add approved_source and qc_feedback statuses to jobs collection validator., Revert to previous validator (without approved_source and qc_feedback)., Update MongoDB schema validator to support approved_source and qc_feedback statu, Migration, Add rendering_video status to jobs collection validator., Revert to previous validator (without rendering_video)., Migration (+4 more) + +### Community 53 - "Community 53" +Cohesion: 0.09 +Nodes (14): Extract a video segment using ffmpeg (stream copy - for overlay method)., Extract segment with RE-ENCODING for frame-accurate cuts. Crucial for p, Extract segment with re-encoding using local ffmpeg via Celery queue., Extract segment with re-encoding via Cloud Run FFmpeg service., Extract audio segment from video for catch-up audio. Used to extract th, Concatenate multiple audio files for combined AD + catch-up audio. Uses, Concatenate audio files using local ffmpeg via Celery queue., Generate a silent audio file of specified duration. Used to create adap (+6 more) + +### Community 54 - "Community 54" +Cohesion: 0.09 +Nodes (16): BaseConfig, BaseSettings, get_settings(), Get settings instance - for dependency injection, Settings, get_settings_cached(), initialize_config(), Enhanced configuration system with Secret Manager integration. (+8 more) + +### Community 55 - "Community 55" +Cohesion: 0.09 +Nodes (15): ApplicationMetrics, Initialize metrics provider and meter, Start Prometheus metrics HTTP server, Record a new job creation, Record job status change, Central metrics collection for the accessible video platform, Record time taken for job processing stage, Record AI service request (+7 more) + +### Community 56 - "Community 56" +Cohesion: 0.09 +Nodes (12): Test parsing different timestamp formats, Test formatting seconds to VTT timestamp, Test error handling for invalid timestamps, Test that parsing and building are consistent, Test parsing VTT with cue identifiers, Test parsing VTT with multi-line cue text, Test VTT parsing and building functionality, Test parsing VTT with NOTE sections (+4 more) + +### Community 57 - "Community 57" +Cohesion: 0.13 +Nodes (17): Validate file type using magic numbers., Validate file size limits., Validate JSON request payload., Custom validation error., Recursively validate JSON values., Validate query parameters., Validate request headers., Raised when security validation fails. (+9 more) + +### Community 58 - "Community 58" +Cohesion: 0.09 +Nodes (13): Test helper methods of VTTRetimerService., offset_at should return 0 for timestamps before any pause., offset_at should include offset for timestamps AT pause point., offset_at should include offset for timestamps after pause., offset_at should sum offsets from all applicable pauses., offset_before should return 0 for timestamps before any pause., offset_before should NOT include offset for timestamps AT pause point., offset_before should include offset for timestamps after pause. (+5 more) + +### Community 59 - "Community 59" +Cohesion: 0.17 +Nodes (16): Invitation, InvitationAcceptRequest, InvitationCreate, InvitationPreviewResponse, InvitationResponse, MemberDetail, Membership, MembershipCreate (+8 more) + +### Community 60 - "Community 60" +Cohesion: 0.16 +Nodes (22): Client Help Workflow, Client Project Screenshot, Interface Navigation, Login Flow, Create Job Button Screenshot, Dashboard Screenshot, Downloads Screenshot, Login Button Help Screenshot (+14 more) + +### Community 61 - "Community 61" +Cohesion: 0.09 +Nodes (21): compilerOptions, allowImportingTsExtensions, erasableSyntaxOnly, jsx, lib, module, moduleDetection, moduleResolution (+13 more) + +### Community 62 - "Community 62" +Cohesion: 0.12 +Nodes (17): AuditLogQuery, AuditLogResponse, AuditLogSeverity, Severity levels for audit events., Schema for querying audit logs., Response schema for audit log queries., AuditLogger, log_action() (+9 more) + +### Community 63 - "Community 63" +Cohesion: 0.16 +Nodes (21): ADR-001: Async Celery Bridge, API Specification, tasks/ffmpeg_operations.py, asyncio EventLoop per Task, Azure AD / Microsoft OIDC SSO, Celery, Google Cloud Run, Docker Compose Services (+13 more) + +### Community 64 - "Community 64" +Cohesion: 0.11 +Nodes (12): test_login(), test_login(), create_access_token(), Test JWT token creation and validation, Test token security properties, Test that tokens don't contain sensitive information, Test creating access token with default expiry, Test that refresh tokens have type field (+4 more) + +### Community 65 - "Community 65" +Cohesion: 0.14 +Nodes (13): main(), MigrationCLI, # TODO: Implement your migration logic here, # TODO: Implement your rollback logic here, Main CLI entry point., Command-line interface for database migrations., Initialize database connection and migration manager, Show current migration status. (+5 more) + +### Community 66 - "Community 66" +Cohesion: 0.12 +Nodes (17): _all_approved(), _any_rejected(), auto_assign_defaults(), _job_languages(), list_for_linguist(), _maybe_advance_job(), open_review(), Per-language QC service — two-stage (linguist → reviewer) assignment, approval, (+9 more) + +### Community 67 - "Community 67" +Cohesion: 0.12 +Nodes (16): AuditLog(), AuditLogCreate, Config, Audit log model for tracking sensitive operations., Schema for creating audit log entries., SignedUploadRequest, SignedUploadResponse, generate_signed_upload_url() (+8 more) + +### Community 68 - "Community 68" +Cohesion: 0.15 +Nodes (11): Generate MP3 audio from audio description VTT content AND return individual segm, Represents a synthesized audio segment for a single AD cue., Generate MP3 using Google TTS with 2-second pauses between passages, Generate MP3 using ElevenLabs TTS, Synthesize text using ElevenLabs API, Get ElevenLabs voice ID for language, Convert VTT timestamp to seconds, Generate MP3 audio from audio description VTT content. Synthesizes each (+3 more) + +### Community 69 - "Community 69" +Cohesion: 0.14 +Nodes (19): EmbeddingStatus, Glossary, GlossaryCreate, GlossaryDetailResponse, GlossaryResponse, GlossarySource, GlossaryStatus, GlossaryTerm (+11 more) + +### Community 70 - "Community 70" +Cohesion: 0.15 +Nodes (15): get_redis(), Get a secret value if it was loaded from Secret Manager., get_api_keys(), get_jwt_secrets(), get_secret(), get_secrets_batch(), Google Cloud Secret Manager integration service., Custom exception for Secret Manager operations. (+7 more) + +### Community 71 - "Community 71" +Cohesion: 0.20 +Nodes (14): AcceptInvite(), Stage, InvitationPreview, _assert_org_admin(), _get_org_name(), _hash_token(), _inv_from_doc(), _make_token() (+6 more) + +### Community 72 - "Community 72" +Cohesion: 0.18 +Nodes (19): MongoDB Change Stream Watcher, Google Cloud Storage, Gemini 2.5 Pro AI Service, Gemini Ingestion Prompt, Gemini Transcreation Prompt, Celery Task: ingest_and_ai, Jobs MongoDB Collection, JWT Authentication with RBAC (+11 more) + +### Community 73 - "Community 73" +Cohesion: 0.14 +Nodes (8): firstCue, textarea, mockApiResponses, testJobs, testUsers, testVttContent, AuthHelper, MockAPIHelper + +### Community 74 - "Community 74" +Cohesion: 0.13 +Nodes (13): FileListItem, MultiUploadFileListProps, UploadProgressItem, UploadStatus, AxiosErrorLike, FileListItem, SharedJobSettings, useMultiUpload() (+5 more) + +### Community 75 - "Community 75" +Cohesion: 0.11 +Nodes (18): compilerOptions, allowImportingTsExtensions, erasableSyntaxOnly, lib, module, moduleDetection, moduleResolution, noEmit (+10 more) + +### Community 76 - "Community 76" +Cohesion: 0.13 +Nodes (18): all_codes(), all_display_map(), get(), get_display_name(), get_gemini_label(), get_preview_sample(), get_tts_lang(), Locale (+10 more) + +### Community 77 - "Community 77" +Cohesion: 0.14 +Nodes (15): close_publisher(), get_job_eligible_users(), JobStatusUpdate, publish_job_status_update(), publish_job_update_with_eligibility(), Synchronous WebSocket Publisher for Celery Workers This module provides a synch, Close Redis connection, Convenience function to publish job status update This is the function that (+7 more) + +### Community 78 - "Community 78" +Cohesion: 0.15 +Nodes (13): Test direct database connection., test_database_connection(), get_password_hash(), verify_password(), Test password hashing and verification, Test password hashing, Test password verification with correct password, Test that same password generates different hashes (due to salt) (+5 more) + +### Community 79 - "Community 79" +Cohesion: 0.17 +Nodes (18): ADR-003: Hybrid Glossary Retrieval, Glossary Service, Hybrid Exact + Vector Glossary Retrieval, glossary_from_doc(), build_glossary_prompt_block(), _cell(), _ensure_indexes(), get_glossaries_for_client() (+10 more) + +### Community 80 - "Community 80" +Cohesion: 0.16 +Nodes (11): WebSocket org isolation tests (MT-7). Tests _can_access_org helper and the org-, Legacy job with no org_id — pass through (further checks done in handler)., _can_access_org only uses `in` operator — any dict-like works., Verify that the handler emits 4403 for org-denied jobs by simulating the rel, test_org_allowed_does_not_close(), test_org_denied_closes_with_4403(), test_platform_admin_none_memberships_not_denied(), TestCanAccessOrg (+3 more) + +### Community 81 - "Community 81" +Cohesion: 0.11 +Nodes (9): Migration, Base class for database migrations., Represents a migration record in the database., Migration, Add PROCESSING_FAILED status to job schema validator and create failure indexes., Migration, Create job_briefs collection with indexes., Migration (+1 more) + +### Community 82 - "Community 82" +Cohesion: 0.26 +Nodes (17): Audio Description (AD), Audio Ducking for AD Overlay, Brand Name Recognition in Video, Closed Captions, DCMP Captioning Standard, Disfluency Removal (DCMP §6.01), On-Screen Text Mandatory Description, Overlay AD Integration Method (+9 more) + +### Community 83 - "Community 83" +Cohesion: 0.18 +Nodes (17): Job Processing Workflow, Quality Control Workflow, VTT Subtitle Editing, Linguist Help Screenshots Section, Job After EN Approve Screenshot, Linguist Dashboard Help Screenshot, QC Detail Help Screenshot, QC Detail Placeholder Help Screenshot (+9 more) + +### Community 84 - "Community 84" +Cohesion: 0.15 +Nodes (13): _count_cues(), create_version(), _next_version(), VTT version control service — DB-backed snapshots with GCS storage., Create a new version whose content is a copy of an older version (non-destructiv, Line-level diff between two versions using difflib., Count WebVTT cue blocks (lines containing ' --> ')., Atomically increment and return the next version number for this job/lang/kind. (+5 more) + +### Community 85 - "Community 85" +Cohesion: 0.15 +Nodes (11): format_ts(), main(), _extract_retry_after(), GeminiTTSService, Synthesize a single cue with retry, honouring API-provided retryDelay on 429., Raised when TTS synthesis fails after all retries., Synthesize full audio description from VTT content. Maintains timing ali, Text-to-Speech service using Google Cloud Text-to-Speech API with Gemini models. (+3 more) + +### Community 86 - "Community 86" +Cohesion: 0.21 +Nodes (13): ShareToken, ShareTokenResponse, client_decision(), CreateShareTokenRequest, PublicJobPreviewLanguage, PublicJobPreviewResponse, Share-token endpoints — create/revoke/list tokens + public read-only view + clie, List all active share tokens for a job. (+5 more) + +### Community 87 - "Community 87" +Cohesion: 0.26 +Nodes (16): Apache Deployment Guide (Archived), Deployment Guide (Archived), Deployment Options (Archived), README (Archived), Archive README Cleanup, CD Backend Workflow, CD Frontend Workflow, CI Workflow (+8 more) + +### Community 88 - "Community 88" +Cohesion: 0.16 +Nodes (13): _format_timestamp(), Config, Review Note model for timestamped video review notes., A timestamped note attached to a video asset during review., ReviewNote, ReviewNote, AddNoteForm(), AddNoteFormProps (+5 more) + +### Community 89 - "Community 89" +Cohesion: 0.46 +Nodes (15): build_images(), deploy_frontend(), ensure_apache_config(), ensure_apache_modules(), ensure_gcs_cors(), fail(), info(), main() (+7 more) + +### Community 90 - "Community 90" +Cohesion: 0.21 +Nodes (15): create_refresh_token(), log_auth_failure(), log_auth_success(), Log successful authentication., Log failed authentication attempt., get_microsoft_auth_service(), Get Microsoft authentication service instance., _get_user_org_ids() (+7 more) + +### Community 91 - "Community 91" +Cohesion: 0.27 +Nodes (13): bump_user_membership_cache(), Invalidate the Redis membership cache for a user (call on any membership write)., get_membership(), get_memberships_for_user(), has_org_role(), _membership_from_doc(), _now(), Membership service — queries the memberships collection. (+5 more) + +### Community 92 - "Community 92" +Cohesion: 0.23 +Nodes (15): Accessible Video Method Screenshot, All Jobs Screenshot, Audit Log Screenshot, Client Help Screenshots, Create Job Form Complete Screenshot, Job Assets Screenshot, Job Created Success Screenshot, Job Detail Screenshot (+7 more) + +### Community 93 - "Community 93" +Cohesion: 0.29 +Nodes (14): adjust_timing_offset(), assert_cue_alignment(), build(), clean_disfluencies(), fix_overlapping_cues(), get_cue_count(), get_total_duration(), parse() (+6 more) + +### Community 94 - "Community 94" +Cohesion: 0.17 +Nodes (8): Parser and builder for WebVTT files, Parse VTT content into a list of cues, Build VTT content from a list of cues, VTTCue, VTTParser, VTTValidator, cues, SyncedCaptionList() + +### Community 95 - "Community 95" +Cohesion: 0.17 +Nodes (11): MicrosoftAuthError, MicrosoftAuthService, MicrosoftTokenValidationError, MicrosoftUserInfo, Validate Microsoft ID token and extract user information. Args:, User information extracted from Microsoft ID token., Base exception for Microsoft authentication errors., Raised when token validation fails. (+3 more) + +### Community 96 - "Community 96" +Cohesion: 0.18 +Nodes (13): authenticate_websocket(), get_connection_manager(), WebSocket Connection Manager for Real-time Job Status Updates This module provi, Authenticate a WebSocket connection using a JWT token Returns user_id if val, Dependency to get the connection manager, WebSocket routes for real-time job status updates Provides WebSocket endpoints, Get WebSocket connection status and statistics (debug/monitoring)., Fetch user document and resolve org memberships from cache. Returns (user_do (+5 more) + +### Community 97 - "Community 97" +Cohesion: 0.13 +Nodes (9): Test parsing audio description cues, Test parsing empty VTT content, Test timestamp parsing, Test getting default ElevenLabs voice for language, Test getting custom ElevenLabs voice, Test ElevenLabs voice fallback for unknown language, Test service initialization with no credentials, Test Text-to-Speech service functionality (+1 more) + +### Community 98 - "Community 98" +Cohesion: 0.35 +Nodes (14): annotateAndScreenshot(), AnnotationRect, captureAdmin(), captureClient(), captureGlobal(), captureLinguist(), captureProduction(), captureProjectManager() (+6 more) + +### Community 99 - "Community 99" +Cohesion: 0.27 +Nodes (5): GeminiService, Return the pre-built glossary block (from glossary_service.build_glossary_prompt, Build the brand context instruction block for injection into prompts., Extract captions and audio descriptions from video using Gemini 2.0 Retu, Wait for uploaded file to become ACTIVE state + +### Community 100 - "Community 100" +Cohesion: 0.24 +Nodes (14): ADR-002: JWT Memory Storage, Audit Logger Service, Authorization Module (authz.py), Bearer Token Authentication, Frontend Auth Module (auth.ts), JWT In-Memory Storage, Language QC Service, Playwright E2E Testing (+6 more) + +### Community 101 - "Community 101" +Cohesion: 0.15 +Nodes (9): create_rate_limit_middleware(), IPWhitelist, RateLimiter, Rate limiting middleware for API endpoints., Redis-based rate limiter with sliding window algorithm., IP whitelist for bypassing rate limits., Check if IP is whitelisted., Remove IP from whitelist. (+1 more) + +### Community 102 - "Community 102" +Cohesion: 0.26 +Nodes (13): input, copy_prefix(), delete_prefix(), gsutil_hash(), gsutil_list(), load_resume(), main(), migrate_job_mongo() (+5 more) + +### Community 103 - "Community 103" +Cohesion: 0.16 +Nodes (13): CachedWhisperTranscript, CachedWordTimestamp, Schemas for Whisper transcript caching., Cached Whisper transcript stored in job document., Word timestamp for MongoDB storage., _dispatch_whisper_transcription(), _extract_audio_for_whisper(), Refine Gemini pause points using Whisper speech gap detection. This functio (+5 more) + +### Community 104 - "Community 104" +Cohesion: 0.21 +Nodes (7): Call generate_content, falling back on 429/503 transient errors. Returns (respon, DEPRECATED: This function is no longer called in the render pipeline. P, Attempt to self-heal invalid JSON response from accessible video analysis, Transcreate English VTT content to target language with cultural adaptation, Load prompt template from prompts directory, Rewrite an audio description cue to be TTS-friendly. Called when TTS sy, _record_gemini_usage() + +### Community 105 - "Community 105" +Cohesion: 0.22 +Nodes (6): Delete temporary GCS file. Args: gcs_uri: GCS URI to delete, Concatenate audio files via Cloud Run FFmpeg service., Concatenate video segments via Cloud Run FFmpeg service., Get or create GCS client for file transfers., Upload local file to GCS temp location and return gs:// URI. Args:, Get video duration via Cloud Run FFmpeg service. + +### Community 106 - "Community 106" +Cohesion: 0.21 +Nodes (10): MetricsTimer, Context manager for timing operations, Time a job processing stage, Time an AI service request, Time a storage operation, Time a Celery task execution, time_ai_request(), time_celery_task() (+2 more) + +### Community 107 - "Community 107" +Cohesion: 0.15 +Nodes (8): Tests for VTT retiming service for pause-insert accessible videos., Test VTT retiming with actual_freeze_duration field., Should use actual_freeze_duration instead of calculated value., Should use calculated value when actual_freeze_duration not provided., Should handle mix of actual and calculated freeze durations., Cue spanning pause should use actual_freeze_duration for split timing., retimer(), TestVTTRetimerActualFreezeDuration + +### Community 108 - "Community 108" +Cohesion: 0.23 +Nodes (11): create_secrets(), generate_secure_key(), list_secrets(), main(), List all existing secrets in the project., Test secret retrieval to ensure everything is working., Main CLI entry point., Generate a cryptographically secure random key. (+3 more) + +### Community 109 - "Community 109" +Cohesion: 0.17 +Nodes (12): record(), _extract_retry_after(), Synthesize a single AD cue and upload to GCS immediately. This task runs on, Synthesize a single cue's text to audio. Returns: Tuple of (audio_b, Return seconds to wait from a Google API 429 retryDelay, or None., Upload a cue's audio to GCS. Path convention: gs://{bucket}/{job_id}/{langu, Run an async coroutine in a sync context., _record_tts_cost() (+4 more) + +### Community 110 - "Community 110" +Cohesion: 0.17 +Nodes (12): _delete_gcs_temp(), _get_cloud_run_id_token(), Transcribe audio using local Whisper service., Run Whisper transcription - via Cloud Run if configured, otherwise locally., Get an ID token for authenticating to Cloud Run services. Uses the service, Upload local audio file to GCS temporary location and return GCS URI., Delete temporary GCS file., Transcribe audio via Cloud Run Whisper service. Uploads local audio to GCS (+4 more) + +### Community 111 - "Community 111" +Cohesion: 0.17 +Nodes (5): clearIntervalSpy, MockWebSocket, { result, unmount }, statusMsg, { unmount } + +### Community 112 - "Community 112" +Cohesion: 0.17 +Nodes (7): decode_token(), Seed utilities for initial data setup., Ensure the default admin user exists and has the admin role. Looks up vadym, seed_default_admin(), Test decoding expired JWT token, Test decoding token with wrong secret, Test decoding valid JWT token + +### Community 113 - "Community 113" +Cohesion: 0.24 +Nodes (11): _buffers(), Tests for adaptive silence buffer formula in video_renderer.py (A1). The render, total_freeze_duration = ad_duration + silence_before + silence_after., silence_before never < 0.05, silence_after never < 0.10, regardless of gap size., Larger natural gap → smaller combined silence overhead., The config defaults used in the formula match the expected values., test_buffer_formula(), test_buffers_never_below_floor() (+3 more) + +### Community 114 - "Community 114" +Cohesion: 0.24 +Nodes (5): ElevenLabs Voice Catalog Service. Fetches and caches available voices from the, Structured voice data from ElevenLabs., Fetch voices from ElevenLabs API with in-memory cache (1-hour TTL). Fall, Fetch voices from the ElevenLabs API., Look up a specific voice by ID. + +### Community 115 - "Community 115" +Cohesion: 0.22 +Nodes (11): get_database(), Set the database instance., activate_version(), archive_glossary(), get_terms_page(), _invalidate_cache(), Atomically set the active version of a glossary., Hard-delete the glossary and all its versions and terms. (+3 more) + +### Community 116 - "Community 116" +Cohesion: 0.18 +Nodes (10): auth_provider_x509_cert_url, auth_uri, client_email, client_id, client_x509_cert_url, private_key, project_id, token_uri (+2 more) + +### Community 117 - "Community 117" +Cohesion: 0.38 +Nodes (5): _get_org_or_404(), list_members(), _now(), _org_from_doc(), Organization management (SaaS multi-tenant replacement for /clients). Access ru + +### Community 118 - "Community 118" +Cohesion: 0.25 +Nodes (10): align(), _cursor_for_time(), _find_match(), _Match, Align Gemini caption VTT timings against Whisper word-level timestamps. Algorit, Lower-case, strip punctuation, drop short tokens., Return the best match for cue_tokens starting at cursor ± SEARCH_WINDOW., Return the index of the first Whisper word at or after time t, starting from fro (+2 more) + +### Community 119 - "Community 119" +Cohesion: 0.20 +Nodes (6): Migration, Migrate audit log schema from basic to comprehensive format., Rollback to old audit log schema format (limited)., Migrate existing audit logs to new schema format., Map old action strings to new AuditAction enum values., Update audit log schema to comprehensive format. + +### Community 120 - "Community 120" +Cohesion: 0.51 +Nodes (9): display_status(), main(), preflight_checks(), print_error(), print_header(), print_info(), print_success(), start_services() (+1 more) + +### Community 121 - "Community 121" +Cohesion: 0.18 +Nodes (9): Pydantic schemas for Review Note API requests and responses., Request body for updating an existing review note., Response model for a single review note., Response model for a list of review notes., Request body for creating a new review note., ReviewNoteCreateRequest, ReviewNoteResponse, ReviewNotesListResponse (+1 more) + +### Community 122 - "Community 122" +Cohesion: 0.22 +Nodes (9): bulk_retry(), BulkRetryRequest, BulkRetryResponse, get_queue_stats(), QueueStats, Admin production endpoints: failure dashboard, bulk retry, queue stats, VTT over, Return pending task counts per Celery queue (via Redis LLEN)., List all jobs in a failed status, optionally filtered by step and org. (+1 more) + +### Community 123 - "Community 123" +Cohesion: 0.22 +Nodes (10): _exact_match(), _get_active_version_id(), _get_translation(), match_terms_for_text(), Hybrid retrieval: exact-match (Aho-Corasick) + semantic (Atlas Vector Search)., Return the active version_id for the active glossary of a client, or None., Find terms present in `text` using Aho-Corasick over the glossary terms., Semantic search via Atlas Vector Search ($vectorSearch). (+2 more) + +### Community 124 - "Community 124" +Cohesion: 0.22 +Nodes (7): Apply request validation middleware., validation_middleware(), Middleware package for FastAPI application., create_validation_middleware(), Enhanced request validation middleware., FastAPI middleware for enhanced request validation., Factory function to create validation middleware. + +### Community 125 - "Community 125" +Cohesion: 0.29 +Nodes (6): RateLimitMiddleware, Get client identifier for rate limiting., Get endpoint pattern for rate limiting., Get rate limit for the current request., Process rate limiting for the request., FastAPI middleware for rate limiting. + +### Community 126 - "Community 126" +Cohesion: 0.58 +Nodes (9): deploy_to_apache(), display_summary(), main(), preflight_checks(), print_error(), print_header(), print_info(), print_success() (+1 more) + +### Community 127 - "Community 127" +Cohesion: 0.33 +Nodes (9): API Service (Docker), FFmpeg HTTP Cloud Run Service, FFmpeg Worker Service (Docker), MongoDB Service (Docker), Docker Compose optical-dev Override, Redis Service (Docker), TTS Worker Service (Docker), Whisper HTTP Cloud Run Service (+1 more) + +### Community 128 - "Community 128" +Cohesion: 0.22 +Nodes (5): Migration, Add tts_failed and render_failed statuses to jobs collection validator. These s, Update MongoDB schema validator to support tts_failed and render_failed statuses, Update the jobs collection validator to include failed statuses., Revert to previous validator (without failed statuses). + +### Community 129 - "Community 129" +Cohesion: 0.22 +Nodes (5): Migration, Initial database schema setup migration., Create initial collections and indexes., Drop all collections (destructive - use with caution)., Initial schema setup with all collections and indexes. + +### Community 130 - "Community 130" +Cohesion: 0.22 +Nodes (5): Migration, Index optimization migration for improved query performance., Remove the optimized indexes., Add optimized indexes for common query patterns., Optimize indexes for better query performance. + +### Community 131 - "Community 131" +Cohesion: 0.22 +Nodes (5): Migration, Update user collection schema validator for PRODUCTION role and nullable passwor, Update the users collection validator., Update MongoDB schema validator to support production role and Microsoft users., Revert to previous validator (client, reviewer, admin only). + +### Community 132 - "Community 132" +Cohesion: 0.22 +Nodes (5): Migration, Add linguist role to user collection schema validator., Update the users collection validator., Update MongoDB schema validator to support linguist role., Revert to validator without linguist role. + +### Community 133 - "Community 133" +Cohesion: 0.22 +Nodes (5): Migration, Add project_manager role to user collection schema validator., Update the users collection validator., Update MongoDB schema validator to support project_manager role., Revert to validator without project_manager role. + +### Community 134 - "Community 134" +Cohesion: 0.31 +Nodes (4): _parse_retry_delay(), Embedding service backed by Vertex AI text-multilingual-embedding-002. Uses the, Extract the server-suggested retry delay from a 429 error., Embed a list of texts and return a list of 768-dim float vectors. Proces + +### Community 135 - "Community 135" +Cohesion: 0.53 +Nodes (8): _make_ctx(), _make_db(), _make_user(), VTT versions org isolation tests (MT-6). All 4 vtt_versions handlers delegate t, test_cross_org_raises_404(), test_missing_job_raises_404(), test_platform_admin_bypasses_org_check(), test_same_org_passes() + +### Community 136 - "Community 136" +Cohesion: 0.22 +Nodes (8): get_accessible_project_ids(), Returns project IDs the user may access, or None meaning "see everything"., generate_zip_filename(), Generate zip filename with current datetime., bulk_download_jobs(), get_job_downloads(), Get VTT content for editing. If language is not specified, returns source langua, Generate a zip file containing all downloadable assets from specified jobs. + +### Community 137 - "Community 137" +Cohesion: 0.29 +Nodes (5): Exception, BudgetExceeded, preflight(), Thin HTTP client for the centralized Oliver AI Cost Tracker., Raised by preflight() when the cost tracker rejects a call due to budget limits. + +### Community 138 - "Community 138" +Cohesion: 0.39 +Nodes (8): Approve Decision Screenshot, Briefs List Screenshot, Final Detail Screenshot, Final List Screenshot, Glossary List Screenshot, Glossary Upload Screenshot, Project Manager Glossary Screenshot, Project Manager Help Section + +### Community 139 - "Community 139" +Cohesion: 0.29 +Nodes (4): Migration, Add auth_provider field to users collection., Remove auth_provider field from all users., Add auth_provider field to support Microsoft authentication. + +### Community 141 - "Community 141" +Cohesion: 0.29 +Nodes (6): audio_description_vtt, captions_vtt, confidence, language, summary, transcript_plaintext + +### Community 142 - "Community 142" +Cohesion: 0.43 +Nodes (7): Accessible Video Processing Platform, API Spec doc, Architecture doc, Architecture doc, Tech Stack doc, Architecture doc, Infrastructure doc + +### Community 143 - "Community 143" +Cohesion: 0.38 +Nodes (7): Cloud-Native Google Cloud Deployment, docker-compose.prod.yml (referenced), Docker Development Setup, All-in-Docker Production Setup, nginx/nginx.conf, Single Domain Nginx Proxy Setup, Deployment Options for Video Accessibility Platform + +### Community 144 - "Community 144" +Cohesion: 0.43 +Nodes (6): AssetValidationService, Service for validating job assets before completion, validate_job_assets(), _validate_mp3_asset(), _validate_video_asset(), _validate_vtt_asset() + +### Community 145 - "Community 145" +Cohesion: 0.29 +Nodes (4): Test VTTCue dataclass, Test creating a VTT cue, Test creating a VTT cue without identifier, TestVTTCue + +### Community 146 - "Community 146" +Cohesion: 0.29 +Nodes (6): create_freeze_segment(), Request for creating a freeze-frame video with audio., Create a freeze-frame video segment with audio overlay (for overlay method)., Create freeze frame that rigidly matches the source video properties. T, Create freeze segment using local ffmpeg via Celery queue., Create freeze segment via Cloud Run FFmpeg service. + +### Community 147 - "Community 147" +Cohesion: 0.29 +Nodes (5): Render with overlay method: 1. Create AD audio track with segments at ta, Get video duration in seconds using ffprobe., Get video duration using local ffprobe via Celery queue., _get_video_duration(), Get video duration using ffprobe + +### Community 148 - "Community 148" +Cohesion: 0.38 +Nodes (6): _celery_fallback(), dispatch(), _job_resource(), Cloud Run Jobs dispatcher — replaces Celery .delay() for heavy pipeline tasks., Dispatch a heavy task to Cloud Run Jobs. Returns the Cloud Run Operation na, Use local Celery when Cloud Run is not available (dev/test). + +### Community 149 - "Community 149" +Cohesion: 0.29 +Nodes (7): Log user management actions., create_user(), deactivate_user(), Create a new user (admin only), Update user details (admin only), Deactivate user account (admin only) - soft delete, update_user() + +### Community 150 - "Community 150" +Cohesion: 0.33 +Nodes (3): Attempt to self-heal invalid JSON response from Gemini, Attempt to self-heal invalid JSON response from targeted extraction, Attempt to fix common JSON syntax issues + +### Community 151 - "Community 151" +Cohesion: 0.33 +Nodes (4): Test Gemini AI service functionality, Test successful prompt loading, Test prompt loading with missing file, TestGeminiService + +### Community 157 - "Community 157" +Cohesion: 0.33 +Nodes (5): Job, JobDownloadsResponse, JobStatus, LoginRequest, LoginResponse + +### Community 158 - "Community 158" +Cohesion: 0.40 +Nodes (4): get_versions_by_ids(), Batch-fetch versions by ID, returns {version_id: GlossaryVersion}., GlossaryVersion, Get full VTT content for a specific version. + +### Community 159 - "Community 159" +Cohesion: 0.40 +Nodes (4): Test database dependency injection., Test simple endpoint without dependencies., test_db_endpoint(), test_simple_endpoint() + +### Community 160 - "Community 160" +Cohesion: 0.40 +Nodes (3): For /ws/jobs, accessible_org_ids must be the list of the user's org IDs., Platform admin memberships=None → accessible_org_ids=None (unrestricted)., TestJobListOrgFilter + +### Community 164 - "Community 164" +Cohesion: 0.60 +Nodes (4): _async_embed_version(), _embed_batch(), embed_glossary_version_task(), Celery task: compute and store Gemini embeddings for all terms in a glossary ver + +### Community 165 - "Community 165" +Cohesion: 0.40 +Nodes (3): Generate a preview audio sample for voice selection., Synthesize text to MP3 using Google Cloud TTS with Gemini model. Args:, Synthesize a single text string to audio using Google TTS + +### Community 166 - "Community 166" +Cohesion: 0.60 +Nodes (5): Tests README, Backend Tests (pytest), pytest conftest.py (missing), E2E Tests (Playwright), Frontend Tests (Vitest/Playwright) + +### Community 168 - "Community 168" +Cohesion: 0.50 +Nodes (3): Check if request is allowed under rate limit. Returns: Tupl, Track rate limiting metrics, track_rate_limit_metrics() + +### Community 169 - "Community 169" +Cohesion: 0.50 +Nodes (4): bulk_delete_jobs(), _delete_job_gcs_assets(), Delete all GCS assets for a job using prefix-based cleanup. All job files a, Bulk delete jobs (production/admin only) + +### Community 170 - "Community 170" +Cohesion: 0.67 +Nodes (3): backend/app/migrations/scripts/, migrations collection, migrate.py + +### Community 173 - "Community 173" +Cohesion: 1.00 +Nodes (3): Global Help Screenshots, Login Screenshot, Notifications Screenshot + +### Community 174 - "Community 174" +Cohesion: 0.67 +Nodes (3): Apache mod_proxy_wstunnel, scripts/deploy-dev.sh, optical-web-1 deployment target + +## Ambiguous Edges - Review These +- `Architecture doc` → `Architecture doc` [AMBIGUOUS] + docs/project/database_schema.md · relation: semantically_similar_to +- `Architecture doc` → `Architecture doc` [AMBIGUOUS] + docs/project/database_schema.md · relation: semantically_similar_to +- `API Spec doc` → `Architecture doc` [AMBIGUOUS] + docs/project/database_schema.md · relation: semantically_similar_to + +## Knowledge Gaps +- **445 isolated node(s):** `OUT_DIR`, `ROLES`, `AnnotationRect`, `tsBuildInfoFile`, `target` (+440 more) + These have ≤1 connection - possible missing edges or undocumented components. +- **134 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes. + +## Suggested Questions +_Questions this graph is uniquely positioned to answer:_ + +- **What is the exact relationship between `Architecture doc` and `Architecture doc`?** + _Edge tagged AMBIGUOUS (relation: semantically_similar_to) - confidence is low._ +- **What is the exact relationship between `Architecture doc` and `Architecture doc`?** + _Edge tagged AMBIGUOUS (relation: semantically_similar_to) - confidence is low._ +- **What is the exact relationship between `API Spec doc` and `Architecture doc`?** + _Edge tagged AMBIGUOUS (relation: semantically_similar_to) - confidence is low._ +- **Why does `VTTEditor` connect `Community 46` to `Community 0`, `Community 3`, `Community 99`, `Community 36`, `Community 144`, `Community 145`, `Community 51`, `Community 22`, `Community 118`, `Community 56`, `Community 93`, `Community 94`?** + _High betweenness centrality (0.106) - this node is a cross-community bridge._ +- **Why does `get_database()` connect `Community 115` to `Community 96`, `Community 5`, `Community 37`, `Community 70`, `Community 47`, `Community 79`, `Community 81`, `Community 62`, `Community 123`, `Community 28`, `Community 158`?** + _High betweenness centrality (0.104) - this node is a cross-community bridge._ +- **Why does `ApiClient` connect `Community 1` to `Community 0`, `Community 2`, `Community 4`, `Community 136`, `Community 9`, `Community 12`, `Community 14`, `Community 15`, `Community 17`, `Community 149`, `Community 22`, `Community 23`, `Community 26`, `Community 29`, `Community 158`, `Community 32`, `Community 33`, `Community 38`, `Community 169`, `Community 44`, `Community 51`, `Community 71`, `Community 74`, `Community 84`, `Community 86`, `Community 91`, `Community 117`, `Community 122`?** + _High betweenness centrality (0.103) - this node is a cross-community bridge._ +- **Are the 60 inferred relationships involving `UserRole` (e.g. with `ResetPasswordResponse` and `.assignReviewerQC()`) actually correct?** + _`UserRole` has 60 INFERRED edges - model-reasoned connections that need verification._ \ No newline at end of file diff --git a/wiki/architecture/wsj-filenaming-structure.md b/wiki/architecture/wsj-filenaming-structure.md new file mode 100644 index 0000000..d13aafc --- /dev/null +++ b/wiki/architecture/wsj-filenaming-structure.md @@ -0,0 +1,89 @@ +--- +tags: [architecture, graphify, wsj-filenaming] +updated: 2026-05-18 +--- + +# Graph Report - /Users/ai_leed/Documents/Projects/Oliver/wsj-filenaming (2026-05-18) + +## Corpus Check +- cluster-only mode — file stats not available + +## Summary +- 100 nodes · 139 edges · 15 communities (14 shown, 1 thin omitted) +- Extraction: 93% EXTRACTED · 7% INFERRED · 0% AMBIGUOUS · INFERRED: 10 edges (avg confidence: 0.86) +- Token cost: 0 input · 0 output + +## Graph Freshness +- Built from commit: `54eddd70` +- Run `git rev-parse HEAD` and compare to check if the graph is stale. +- Run `graphify update .` after code changes (no API cost). + +## Community Hubs (Navigation) +- [[_COMMUNITY_Community 0|Community 0]] +- [[_COMMUNITY_Community 1|Community 1]] +- [[_COMMUNITY_Community 2|Community 2]] +- [[_COMMUNITY_Community 3|Community 3]] +- [[_COMMUNITY_Community 4|Community 4]] +- [[_COMMUNITY_Community 6|Community 6]] +- [[_COMMUNITY_Community 7|Community 7]] + +## God Nodes (most connected - your core abstractions) +1. `Standard Format: [OMGID] - [Domain]-[Subteam]-[Brand]-[Initiative]-[YY]-[Sequence]_[AssetName]_v[Version]` - 10 edges +2. `Dow Jones Job Naming Tool` - 9 edges +3. `loadMetadata()` - 8 edges +4. `loadData()` - 7 edges +5. `Event Format: [OMGID] - EVNT-[EventAbbrev]-[YY]-[Sequence]_[AssetName]_v[Version]` - 7 edges +6. `api.php (Backend API: AI commands, data CRUD, campaign management)` - 7 edges +7. `saveMetadata()` - 6 edges +8. `initSpreadsheet()` - 5 edges +9. `getSheetPath()` - 5 edges +10. `createSheet()` - 5 edges + +## Surprising Connections (you probably didn't know these) +- `loadData()` --calls--> `showLoading()` [EXTRACTED] + script.js → script.js _Bridges community 4 → community 7_ +- `Dow Jones Job Naming Tool` --references--> `Job Naming Convention` [EXTRACTED] + README.md → README.md _Bridges community 1 → community 2_ + +## Communities (15 total, 1 thin omitted) + +### Community 0 - "Community 0" +Cohesion: 0.06 +Nodes (30): aiModal, aiModalInput, aiModalMicBtn, aiModalSendBtn, aiModalYoloBtn, answer, blob, BRANDS (+22 more) + +### Community 1 - "Community 1" +Cohesion: 0.18 +Nodes (17): AI Command Bar Feature, api.php (Backend API: AI commands, data CRUD, campaign management), Campaign Save/Load Feature, campaigns/ (Saved campaign files), config.php (API keys and settings), Copy Filenames Feature, CSV Export Feature, data.json (Current working data) (+9 more) + +### Community 2 - "Community 2" +Cohesion: 0.26 +Nodes (14): AssetName Field (PascalCase asset description), Brand Variable, Domain Variable, Dropdown Validation Feature, Event Variable, Event Format: [OMGID] - EVNT-[EventAbbrev]-[YY]-[Sequence]_[AssetName]_v[Version], Initiative Field (free-text abbreviation), Job Naming Convention (+6 more) + +### Community 3 - "Community 3" +Cohesion: 0.44 +Nodes (11): createSheet(), deleteSheet(), duplicateSheet(), getMetadataPath(), getSheetPath(), getUserSheets(), loadMetadata(), loadSheetData() (+3 more) + +### Community 4 - "Community 4" +Cohesion: 0.53 +Nodes (6): buildFilename(), initSpreadsheet(), loadData(), saveData(), updateAllFilenames(), updateFilenameForRow() + +### Community 7 - "Community 7" +Cohesion: 0.67 +Nodes (3): sendCommand(), showLoading(), stopMicAndSend() + +## Knowledge Gaps +- **35 isolated node(s):** `spreadsheetDiv`, `commandInput`, `sendBtn`, `exportBtn`, `loadingOverlay` (+30 more) + These have ≤1 connection - possible missing edges or undocumented components. +- **1 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes. + +## Suggested Questions +_Questions this graph is uniquely positioned to answer:_ + +- **Why does `Dow Jones Job Naming Tool` connect `Community 1` to `Community 2`?** + _High betweenness centrality (0.056) - this node is a cross-community bridge._ +- **Why does `Job Naming Convention` connect `Community 2` to `Community 1`?** + _High betweenness centrality (0.028) - this node is a cross-community bridge._ +- **What connects `spreadsheetDiv`, `commandInput`, `sendBtn` to the rest of the system?** + _35 weakly-connected nodes found - possible documentation gaps or missing edges._ +- **Should `Community 0` be split into smaller, more focused modules?** + _Cohesion score 0.0625 - nodes in this community are weakly interconnected._ \ No newline at end of file