code-server auto-sync 2026-05-06T10:25:01+00:00

This commit is contained in:
2026-05-06 10:25:01 +00:00
parent 3220238c67
commit f6bf12ccf9
6 changed files with 979 additions and 0 deletions

View File

@@ -0,0 +1 @@
/root/knowledge-base/projects/dttb

View File

@@ -0,0 +1,74 @@
# Graph Report - dttb (2026-05-06)
## Corpus Check
- 1 files · ~22,438 words
- Verdict: corpus is large enough that graph structure adds value.
## Summary
- 18 nodes · 28 edges · 4 communities (3 shown, 1 thin omitted)
- Extraction: 100% EXTRACTED · 0% INFERRED · 0% AMBIGUOUS
- Token cost: 0 input · 0 output
## Graph Freshness
- Built from commit: `3220238c`
- 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]]
## God Nodes (most connected - your core abstractions)
1. `nc_request()` - 6 edges
2. `main()` - 6 edges
3. `send_message()` - 5 edges
4. `build_system_prompt()` - 4 edges
5. `get_last_message_id()` - 4 edges
6. `poll_new_messages()` - 4 edges
7. `join_room()` - 4 edges
8. `load_knowledge_base()` - 3 edges
9. `get_ai_reply()` - 3 edges
10. `Load all .md files from knowledge-base repo into context string` - 1 edges
## Surprising Connections (you probably didn't know these)
- `main()` --calls--> `build_system_prompt()` [EXTRACTED]
nextcloud-talk-bot.py → nextcloud-talk-bot.py _Bridges community 2 → community 0_
- `get_last_message_id()` --calls--> `nc_request()` [EXTRACTED]
nextcloud-talk-bot.py → nextcloud-talk-bot.py _Bridges community 1 → community 3_
- `poll_new_messages()` --calls--> `nc_request()` [EXTRACTED]
nextcloud-talk-bot.py → nextcloud-talk-bot.py _Bridges community 1 → community 0_
- `main()` --calls--> `get_last_message_id()` [EXTRACTED]
nextcloud-talk-bot.py → nextcloud-talk-bot.py _Bridges community 3 → community 0_
## Communities (4 total, 1 thin omitted)
### Community 0 - "Community 0"
Cohesion: 0.47
Nodes (5): get_ai_reply(), main(), poll_new_messages(), Long-poll for new messages after last_id, Get reply from Claude via cliproxy
### Community 1 - "Community 1"
Cohesion: 0.4
Nodes (6): join_room(), nc_request(), Join conversation as bot user, Send message as bot user, Nextcloud OCS API request, send_message()
### Community 2 - "Community 2"
Cohesion: 0.5
Nodes (4): build_system_prompt(), load_knowledge_base(), Load all .md files from knowledge-base repo into context string, Build system prompt with knowledge base
## Knowledge Gaps
- **8 isolated node(s):** `Load all .md files from knowledge-base repo into context string`, `Build system prompt with knowledge base`, `Nextcloud OCS API request`, `Get the highest message ID in the conversation`, `Long-poll for new messages after last_id` (+3 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 `nc_request()` connect `Community 1` to `Community 0`, `Community 3`?**
_High betweenness centrality (0.176) - this node is a cross-community bridge._
- **Why does `main()` connect `Community 0` to `Community 1`, `Community 2`, `Community 3`?**
_High betweenness centrality (0.132) - this node is a cross-community bridge._
- **Why does `send_message()` connect `Community 1` to `Community 0`?**
_High betweenness centrality (0.129) - this node is a cross-community bridge._
- **What connects `Load all .md files from knowledge-base repo into context string`, `Build system prompt with knowledge base`, `Nextcloud OCS API request` to the rest of the system?**
_8 weakly-connected nodes found - possible documentation gaps or missing edges._

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,464 @@
{
"directed": false,
"multigraph": false,
"graph": {},
"nodes": [
{
"label": "nextcloud-talk-bot.py",
"file_type": "code",
"source_file": "nextcloud-talk-bot.py",
"source_location": "L1",
"id": "nextcloud_talk_bot_py",
"community": 0,
"norm_label": "nextcloud-talk-bot.py"
},
{
"label": "load_knowledge_base()",
"file_type": "code",
"source_file": "nextcloud-talk-bot.py",
"source_location": "L34",
"id": "nextcloud_talk_bot_nextcloud_talk_bot_load_knowledge_base",
"community": 2,
"norm_label": "load_knowledge_base()"
},
{
"label": "build_system_prompt()",
"file_type": "code",
"source_file": "nextcloud-talk-bot.py",
"source_location": "L70",
"id": "nextcloud_talk_bot_nextcloud_talk_bot_build_system_prompt",
"community": 2,
"norm_label": "build_system_prompt()"
},
{
"label": "nc_request()",
"file_type": "code",
"source_file": "nextcloud-talk-bot.py",
"source_location": "L92",
"id": "nextcloud_talk_bot_nextcloud_talk_bot_nc_request",
"community": 1,
"norm_label": "nc_request()"
},
{
"label": "get_last_message_id()",
"file_type": "code",
"source_file": "nextcloud-talk-bot.py",
"source_location": "L106",
"id": "nextcloud_talk_bot_nextcloud_talk_bot_get_last_message_id",
"community": 3,
"norm_label": "get_last_message_id()"
},
{
"label": "poll_new_messages()",
"file_type": "code",
"source_file": "nextcloud-talk-bot.py",
"source_location": "L113",
"id": "nextcloud_talk_bot_nextcloud_talk_bot_poll_new_messages",
"community": 0,
"norm_label": "poll_new_messages()"
},
{
"label": "join_room()",
"file_type": "code",
"source_file": "nextcloud-talk-bot.py",
"source_location": "L129",
"id": "nextcloud_talk_bot_nextcloud_talk_bot_join_room",
"community": 1,
"norm_label": "join_room()"
},
{
"label": "send_message()",
"file_type": "code",
"source_file": "nextcloud-talk-bot.py",
"source_location": "L140",
"id": "nextcloud_talk_bot_nextcloud_talk_bot_send_message",
"community": 1,
"norm_label": "send_message()"
},
{
"label": "get_ai_reply()",
"file_type": "code",
"source_file": "nextcloud-talk-bot.py",
"source_location": "L152",
"id": "nextcloud_talk_bot_nextcloud_talk_bot_get_ai_reply",
"community": 0,
"norm_label": "get_ai_reply()"
},
{
"label": "main()",
"file_type": "code",
"source_file": "nextcloud-talk-bot.py",
"source_location": "L196",
"id": "nextcloud_talk_bot_nextcloud_talk_bot_main",
"community": 0,
"norm_label": "main()"
},
{
"label": "Load all .md files from knowledge-base repo into context string",
"file_type": "rationale",
"source_file": "nextcloud-talk-bot.py",
"source_location": "L35",
"id": "nextcloud_talk_bot_nextcloud_talk_bot_rationale_35",
"community": 2,
"norm_label": "load all .md files from knowledge-base repo into context string"
},
{
"label": "Build system prompt with knowledge base",
"file_type": "rationale",
"source_file": "nextcloud-talk-bot.py",
"source_location": "L71",
"id": "nextcloud_talk_bot_nextcloud_talk_bot_rationale_71",
"community": 2,
"norm_label": "build system prompt with knowledge base"
},
{
"label": "Nextcloud OCS API request",
"file_type": "rationale",
"source_file": "nextcloud-talk-bot.py",
"source_location": "L93",
"id": "nextcloud_talk_bot_nextcloud_talk_bot_rationale_93",
"community": 1,
"norm_label": "nextcloud ocs api request"
},
{
"label": "Get the highest message ID in the conversation",
"file_type": "rationale",
"source_file": "nextcloud-talk-bot.py",
"source_location": "L107",
"id": "nextcloud_talk_bot_nextcloud_talk_bot_rationale_107",
"community": 3,
"norm_label": "get the highest message id in the conversation"
},
{
"label": "Long-poll for new messages after last_id",
"file_type": "rationale",
"source_file": "nextcloud-talk-bot.py",
"source_location": "L114",
"id": "nextcloud_talk_bot_nextcloud_talk_bot_rationale_114",
"community": 0,
"norm_label": "long-poll for new messages after last_id"
},
{
"label": "Join conversation as bot user",
"file_type": "rationale",
"source_file": "nextcloud-talk-bot.py",
"source_location": "L130",
"id": "nextcloud_talk_bot_nextcloud_talk_bot_rationale_130",
"community": 1,
"norm_label": "join conversation as bot user"
},
{
"label": "Send message as bot user",
"file_type": "rationale",
"source_file": "nextcloud-talk-bot.py",
"source_location": "L141",
"id": "nextcloud_talk_bot_nextcloud_talk_bot_rationale_141",
"community": 1,
"norm_label": "send message as bot user"
},
{
"label": "Get reply from Claude via cliproxy",
"file_type": "rationale",
"source_file": "nextcloud-talk-bot.py",
"source_location": "L153",
"id": "nextcloud_talk_bot_nextcloud_talk_bot_rationale_153",
"community": 0,
"norm_label": "get reply from claude via cliproxy"
}
],
"links": [
{
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "nextcloud-talk-bot.py",
"source_location": "L34",
"weight": 1.0,
"source": "nextcloud_talk_bot_py",
"target": "nextcloud_talk_bot_nextcloud_talk_bot_load_knowledge_base",
"confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "nextcloud-talk-bot.py",
"source_location": "L70",
"weight": 1.0,
"source": "nextcloud_talk_bot_py",
"target": "nextcloud_talk_bot_nextcloud_talk_bot_build_system_prompt",
"confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "nextcloud-talk-bot.py",
"source_location": "L92",
"weight": 1.0,
"source": "nextcloud_talk_bot_py",
"target": "nextcloud_talk_bot_nextcloud_talk_bot_nc_request",
"confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "nextcloud-talk-bot.py",
"source_location": "L106",
"weight": 1.0,
"source": "nextcloud_talk_bot_py",
"target": "nextcloud_talk_bot_nextcloud_talk_bot_get_last_message_id",
"confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "nextcloud-talk-bot.py",
"source_location": "L113",
"weight": 1.0,
"source": "nextcloud_talk_bot_py",
"target": "nextcloud_talk_bot_nextcloud_talk_bot_poll_new_messages",
"confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "nextcloud-talk-bot.py",
"source_location": "L129",
"weight": 1.0,
"source": "nextcloud_talk_bot_py",
"target": "nextcloud_talk_bot_nextcloud_talk_bot_join_room",
"confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "nextcloud-talk-bot.py",
"source_location": "L140",
"weight": 1.0,
"source": "nextcloud_talk_bot_py",
"target": "nextcloud_talk_bot_nextcloud_talk_bot_send_message",
"confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "nextcloud-talk-bot.py",
"source_location": "L152",
"weight": 1.0,
"source": "nextcloud_talk_bot_py",
"target": "nextcloud_talk_bot_nextcloud_talk_bot_get_ai_reply",
"confidence_score": 1.0
},
{
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "nextcloud-talk-bot.py",
"source_location": "L196",
"weight": 1.0,
"source": "nextcloud_talk_bot_py",
"target": "nextcloud_talk_bot_nextcloud_talk_bot_main",
"confidence_score": 1.0
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
"source_file": "nextcloud-talk-bot.py",
"source_location": "L72",
"weight": 1.0,
"source": "nextcloud_talk_bot_nextcloud_talk_bot_build_system_prompt",
"target": "nextcloud_talk_bot_nextcloud_talk_bot_load_knowledge_base",
"confidence_score": 1.0
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "nextcloud-talk-bot.py",
"source_location": "L35",
"weight": 1.0,
"source": "nextcloud_talk_bot_nextcloud_talk_bot_rationale_35",
"target": "nextcloud_talk_bot_nextcloud_talk_bot_load_knowledge_base",
"confidence_score": 1.0
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
"source_file": "nextcloud-talk-bot.py",
"source_location": "L204",
"weight": 1.0,
"source": "nextcloud_talk_bot_nextcloud_talk_bot_main",
"target": "nextcloud_talk_bot_nextcloud_talk_bot_build_system_prompt",
"confidence_score": 1.0
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "nextcloud-talk-bot.py",
"source_location": "L71",
"weight": 1.0,
"source": "nextcloud_talk_bot_nextcloud_talk_bot_rationale_71",
"target": "nextcloud_talk_bot_nextcloud_talk_bot_build_system_prompt",
"confidence_score": 1.0
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
"source_file": "nextcloud-talk-bot.py",
"source_location": "L108",
"weight": 1.0,
"source": "nextcloud_talk_bot_nextcloud_talk_bot_get_last_message_id",
"target": "nextcloud_talk_bot_nextcloud_talk_bot_nc_request",
"confidence_score": 1.0
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
"source_file": "nextcloud-talk-bot.py",
"source_location": "L116",
"weight": 1.0,
"source": "nextcloud_talk_bot_nextcloud_talk_bot_poll_new_messages",
"target": "nextcloud_talk_bot_nextcloud_talk_bot_nc_request",
"confidence_score": 1.0
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
"source_file": "nextcloud-talk-bot.py",
"source_location": "L132",
"weight": 1.0,
"source": "nextcloud_talk_bot_nextcloud_talk_bot_join_room",
"target": "nextcloud_talk_bot_nextcloud_talk_bot_nc_request",
"confidence_score": 1.0
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
"source_file": "nextcloud-talk-bot.py",
"source_location": "L146",
"weight": 1.0,
"source": "nextcloud_talk_bot_nextcloud_talk_bot_send_message",
"target": "nextcloud_talk_bot_nextcloud_talk_bot_nc_request",
"confidence_score": 1.0
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "nextcloud-talk-bot.py",
"source_location": "L93",
"weight": 1.0,
"source": "nextcloud_talk_bot_nextcloud_talk_bot_rationale_93",
"target": "nextcloud_talk_bot_nextcloud_talk_bot_nc_request",
"confidence_score": 1.0
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
"source_file": "nextcloud-talk-bot.py",
"source_location": "L208",
"weight": 1.0,
"source": "nextcloud_talk_bot_nextcloud_talk_bot_main",
"target": "nextcloud_talk_bot_nextcloud_talk_bot_get_last_message_id",
"confidence_score": 1.0
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "nextcloud-talk-bot.py",
"source_location": "L107",
"weight": 1.0,
"source": "nextcloud_talk_bot_nextcloud_talk_bot_rationale_107",
"target": "nextcloud_talk_bot_nextcloud_talk_bot_get_last_message_id",
"confidence_score": 1.0
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
"source_file": "nextcloud-talk-bot.py",
"source_location": "L214",
"weight": 1.0,
"source": "nextcloud_talk_bot_nextcloud_talk_bot_main",
"target": "nextcloud_talk_bot_nextcloud_talk_bot_poll_new_messages",
"confidence_score": 1.0
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "nextcloud-talk-bot.py",
"source_location": "L114",
"weight": 1.0,
"source": "nextcloud_talk_bot_nextcloud_talk_bot_rationale_114",
"target": "nextcloud_talk_bot_nextcloud_talk_bot_poll_new_messages",
"confidence_score": 1.0
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
"source_file": "nextcloud-talk-bot.py",
"source_location": "L142",
"weight": 1.0,
"source": "nextcloud_talk_bot_nextcloud_talk_bot_send_message",
"target": "nextcloud_talk_bot_nextcloud_talk_bot_join_room",
"confidence_score": 1.0
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "nextcloud-talk-bot.py",
"source_location": "L130",
"weight": 1.0,
"source": "nextcloud_talk_bot_nextcloud_talk_bot_rationale_130",
"target": "nextcloud_talk_bot_nextcloud_talk_bot_join_room",
"confidence_score": 1.0
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
"source_file": "nextcloud-talk-bot.py",
"source_location": "L242",
"weight": 1.0,
"source": "nextcloud_talk_bot_nextcloud_talk_bot_main",
"target": "nextcloud_talk_bot_nextcloud_talk_bot_send_message",
"confidence_score": 1.0
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "nextcloud-talk-bot.py",
"source_location": "L141",
"weight": 1.0,
"source": "nextcloud_talk_bot_nextcloud_talk_bot_rationale_141",
"target": "nextcloud_talk_bot_nextcloud_talk_bot_send_message",
"confidence_score": 1.0
},
{
"relation": "calls",
"context": "call",
"confidence": "EXTRACTED",
"source_file": "nextcloud-talk-bot.py",
"source_location": "L249",
"weight": 1.0,
"source": "nextcloud_talk_bot_nextcloud_talk_bot_main",
"target": "nextcloud_talk_bot_nextcloud_talk_bot_get_ai_reply",
"confidence_score": 1.0
},
{
"relation": "rationale_for",
"confidence": "EXTRACTED",
"source_file": "nextcloud-talk-bot.py",
"source_location": "L153",
"weight": 1.0,
"source": "nextcloud_talk_bot_nextcloud_talk_bot_rationale_153",
"target": "nextcloud_talk_bot_nextcloud_talk_bot_get_ai_reply",
"confidence_score": 1.0
}
],
"hyperedges": [],
"built_at_commit": "3220238c67f7f80ed7bf630e3aeb019d872a67da"
}

View File

@@ -0,0 +1,134 @@
{
"/root/knowledge-base/projects/dttb/nextcloud-talk-bot/nextcloud-talk-bot.py": {
"mtime": 1772553250.5498495,
"hash": "37c31f385bf367dffa5410fca5db2aad"
},
"/root/knowledge-base/projects/dttb/npm-homelab.md": {
"mtime": 1776533040.2587712,
"hash": "9037da8a80c3728a1c3ae9e30307d4c1"
},
"/root/knowledge-base/projects/dttb/nextcloud.md": {
"mtime": 1776533040.2587712,
"hash": "0b1fac8b98394b2eeaab825e73725b54"
},
"/root/knowledge-base/projects/dttb/vpn-clients.md": {
"mtime": 1777491602.2761946,
"hash": "6829b65fd532c33c8afc596c01b86c25"
},
"/root/knowledge-base/projects/dttb/rustdesk.md": {
"mtime": 1777535102.3840268,
"hash": "5a1ea382a62ecce3751bbccf82c2e2da"
},
"/root/knowledge-base/projects/dttb/proxmox-inventory.md": {
"mtime": 1777491602.2761946,
"hash": "ceccd235f7a6871628985d294d7799a2"
},
"/root/knowledge-base/projects/dttb/README.md": {
"mtime": 1776533040.256771,
"hash": "d913624f91ab13167e7b2084c15ea3ec"
},
"/root/knowledge-base/projects/dttb/server1c.md": {
"mtime": 1776533040.259771,
"hash": "074469e3b11d518deaef534a78682b02"
},
"/root/knowledge-base/projects/dttb/znamenskoye-network-topology.md": {
"mtime": 1776454954.6540399,
"hash": "069efe059e04d48a73318ad4a60d4659"
},
"/root/knowledge-base/projects/dttb/agentdvr-home.md": {
"mtime": 1776533040.256771,
"hash": "4389dc7a8af5a8eec0e9078cf1543cdf"
},
"/root/knowledge-base/projects/dttb/memory-inventory.md": {
"mtime": 1776533040.257771,
"hash": "7c2cbd84335b1d5c36998ff3381bc184"
},
"/root/knowledge-base/projects/dttb/video-surveillance-report.md": {
"mtime": 1776533040.259771,
"hash": "20a162cad1d26a84cbbf23e77ecb2e52"
},
"/root/knowledge-base/projects/dttb/openclaw.md": {
"mtime": 1777274101.853409,
"hash": "c8544464ec9ce9294f696f3e333cb65d"
},
"/root/knowledge-base/projects/dttb/rustdesk-runbook.md": {
"mtime": 1777535102.3830266,
"hash": "db23daa2ddd9c22087fa84e7d864087f"
},
"/root/knowledge-base/projects/dttb/oleg-agent.md": {
"mtime": 1776533040.2587712,
"hash": "66764bf64eb9c10bd3ba7b9821694b55"
},
"/root/knowledge-base/projects/dttb/netbird-inventory.md": {
"mtime": 1776533040.257771,
"hash": "c33a5181e1ad45b6accb77c77cd83bef"
},
"/root/knowledge-base/projects/dttb/clawdbot.md": {
"mtime": 1776582820.6267729,
"hash": "0e0c17505e600fb3e2e5906cea9c3cea"
},
"/root/knowledge-base/projects/dttb/clawdbot-znam.md": {
"mtime": 1776582820.6267729,
"hash": "c7456b12fd420333c1be65b87ce36561"
},
"/root/knowledge-base/projects/dttb/vps-swtest.md": {
"mtime": 1776791401.979136,
"hash": "708e0875a4692ee4d075e023cf3aeab8"
},
"/root/knowledge-base/projects/dttb/spaceweb-dns.md": {
"mtime": 1776582820.6277728,
"hash": "7be7f83e0cf7e91d5655be9611014564"
},
"/root/knowledge-base/projects/dttb/npm-proxy-hosts.md": {
"mtime": 1776533040.2587712,
"hash": "d4023b30e51211fcd1719c36af5ddcf6"
},
"/root/knowledge-base/projects/dttb/gpu-passthrough.md": {
"mtime": 1776533040.256771,
"hash": "014042fb4d0e68c3d4ce8e306fccb352"
},
"/root/knowledge-base/projects/dttb/openwrt-router.md": {
"mtime": 1777498202.2161224,
"hash": "ca6584ae5ecbc94cb0a48de74c67099f"
},
"/root/knowledge-base/projects/dttb/znamenskoye-log.md": {
"mtime": 1776866401.9426904,
"hash": "e613a7ccbc964f60ef4c613c727c3399"
},
"/root/knowledge-base/projects/dttb/gitea.md": {
"mtime": 1776533040.256771,
"hash": "6af3c6fea7388b1e8529a46ad3ca15dc"
},
"/root/knowledge-base/projects/dttb/mailcow-dttb.md": {
"mtime": 1776533040.257771,
"hash": "736ee5b42265c72908fb1e6d8efadb7c"
},
"/root/knowledge-base/projects/dttb/videonablyudenie-znam.md": {
"mtime": 1776533040.2607713,
"hash": "3ea218acd3308070da6bfbb874b31e27"
},
"/root/knowledge-base/projects/dttb/matrix-homelab.md": {
"mtime": 1776533040.257771,
"hash": "a650a7f600fbb5d7522bd24924820d6a"
},
"/root/knowledge-base/projects/dttb/network-topology-diagram.md": {
"mtime": 1777874102.1657124,
"hash": "46077e02378c57f65b427f6aab0aa075"
},
"/root/knowledge-base/projects/dttb/homeassistant.md": {
"mtime": 1776533040.257771,
"hash": "3c8ee8300606414c61d31fff665391e3"
},
"/root/knowledge-base/projects/dttb/network-topology.md": {
"mtime": 1776533040.257771,
"hash": "9bfd2213d2f1b0c8955086f17a6df1b7"
},
"/root/knowledge-base/projects/dttb/nextcloud-talk-bot/README.md": {
"mtime": 1776533040.2587712,
"hash": "f57c75af81c6a6af6a30f3d99341bf31"
},
"/root/knowledge-base/projects/dttb/oleg-agent/docker-compose.yml": {
"mtime": 1772553250.5505955,
"hash": "d765ad412d55282485eec876cda9bc8b"
}
}