brain/.claude/settings.json

335 lines
86 KiB
JSON
Raw Permalink Blame History

{
"permissions": {
"allow": [
"Bash(mkdir -p /home/chk/Dokumente/brain/.claude/skills/obsidian-markdown/references)",
"Bash(mkdir -p /home/chk/Dokumente/brain/.claude/skills/obsidian-bases/references)",
"Bash(mkdir -p /home/chk/Dokumente/brain/.claude/skills/json-canvas/references)",
"Bash(mkdir -p /home/chk/Dokumente/brain/.claude/skills/obsidian-cli)",
"Bash(mkdir -p /home/chk/Dokumente/brain/.claude/skills/defuddle)",
"Write(/home/chk/Dokumente/brain/.claude/skills/jour-fixe.md)",
"Write(D:\\\\projects\\\\chrka\\\\brain\\\\.claude\\\\commands\\\\meeting.md)",
"Write(D:\\\\projects\\\\chrka\\\\brain\\\\.claude\\\\commands\\\\meeting-end.md)",
"Write(D:\\\\projects\\\\chrka\\\\brain\\\\.claude\\\\skills\\\\jour-fixe.md)",
"Edit(D:\\\\projects\\\\chrka\\\\brain\\\\.claude\\\\skills\\\\jour-fixe.md)",
"Read(//c/Users/d-chrka/AppData/Roaming/UpNote/UpNote Backup/HtgSdi2hYyUfnYq3OZkBwx13H5q2/Markdown/General Space/**)",
"Read(//d/projects/brain/05 Daily Notes/**)",
"Bash(rm -rf \"D:/projects/chrka/brain/05 Daily Notes/_import_test\" && cd \"D:/projects/chrka/brain\" && python scripts/import_journal.py 2>&1 | tail -20)",
"Bash(mkdir -p \"D:/projects/chrka/brain/03 Bereiche/Familie/Versicherungen\" \"D:/projects/chrka/brain/03 Bereiche/Familie/Haus Buchhagen\")",
"Bash(mv \"Autoversicherung Hetty.md\" \"Autoversicherung Vera.md\" \"Berufsunfähigkeit & BasisRente \\(Rürup\\).md\" \"CanadaLife Rentenversicherungen.md\" \"Direktversicherung.md\" \"Familienhaftpflicht.md\" \"Gebäudeversicherung.md\" \"Gesetzliche Krankenversicherung.md\" \"Hausrat Hetty.md\" \"Hausrat Kauers.md\" \"Krankenzusatzversicherung & Zahnzusatz Justus.md\" \"Krankenzusatzversicherung Vicky.md\" \"Metallrente.md\" \"Unfallversicherung.md\" \"Union Investment RiesterRente.md\" \"Volkswohlbund Berufsunfähigkeit.md\" \"Zahnzusatzversicherung.md\" \"../Familie/Versicherungen/\")",
"Bash(cd \"D:/projects/chrka/brain/03 Bereiche/Familie\" && mv \"Auslegung Wechselrichter.md\" \"Klärgrube.md\" \"PV Anlage.md\" \"PV-Anlage neuer Stromzähler.md\" \"Pool.md\" \"Teich-Tagebuch.md\" \"Zapfanlage.md\" \"Haus Buchhagen/\" && ls \"Haus Buchhagen\" && echo \"---\" && ls \"Versicherungen\" | wc -l && echo \"Finanzen:\" && ls \"D:/projects/chrka/brain/03 Bereiche/Finanzen\")",
"Bash(cd \"D:/projects/chrka/brain\" && for title in \"Netzwerk-Interface\" \"Claude Notes\" \"Koogle\" \"Export Metadaten\" \"Hydra\" \"Fernseher\" \"KERBEROS\" \"Meinolf\" \"DocuWare\" \"Autobatterie\" \"Systemarchitektur\" \"Full Cert Chain\"; do echo \"=== $title ===\"; find . -type f -name \"*.md\" -not -path \"./node_modules/*\" 2>/dev/null | xargs grep -l -i \"$title\" 2>/dev/null | head -3; done)",
"Bash(cd \"C:\\\\Users\\\\d-chrka\\\\AppData\\\\Roaming\\\\UpNote\\\\UpNote Backup\\\\HtgSdi2hYyUfnYq3OZkBwx13H5q2\\\\Markdown\\\\General Space\" && grep -l \"^# I: \" *.md 2>/dev/null | head -5)",
"Bash(cd /d D:\\\\projects\\\\chrka\\\\brain && python scripts/import_inventar.py --dry-run)",
"Read(//d/projects/chrka/myNote/ka-note/server/data/backup-remote/**)",
"Read(//d/projects/chrka/myNote/ka-note/server/data/**)",
"Read(//d/projects/chrka/myNote/**)",
"Bash(sort -t\"'\" -k2)",
"Bash(mkdir -p /tmp/kan)",
"Bash(cp 'D:\\\\projects\\\\chrka\\\\myNote\\\\ka-note\\\\server\\\\ka-note.db' 'D:\\\\projects\\\\chrka\\\\myNote\\\\ka-note\\\\server\\\\ka-note.db-shm' 'D:\\\\projects\\\\chrka\\\\myNote\\\\ka-note\\\\server\\\\ka-note.db-wal' /tmp/kan/)",
"Bash(cp 'D:\\\\projects\\\\chrka\\\\myNote\\\\ka-note\\\\server\\\\ka-note.db' 'D:\\\\projects\\\\chrka\\\\myNote\\\\ka-note\\\\server\\\\ka-note.db-shm' 'D:\\\\projects\\\\chrka\\\\myNote\\\\ka-note\\\\server\\\\ka-note.db-wal' /c/temp/ 2>&1 || \\(mkdir -p /c/temp && cp 'D:\\\\projects\\\\chrka\\\\myNote\\\\ka-note\\\\server\\\\ka-note.db' 'D:\\\\projects\\\\chrka\\\\myNote\\\\ka-note\\\\server\\\\ka-note.db-shm' 'D:\\\\projects\\\\chrka\\\\myNote\\\\ka-note\\\\server\\\\ka-note.db-wal' /c/temp/\\))",
"Bash(sqlite3 'C:\\\\temp\\\\ka-note.db' '.tables')",
"Bash(unzip -l backup-remote.zip)",
"Bash(sqlite3 'C:\\\\temp\\\\ka-note.db' '.recover')",
"Read(//c/temp/**)",
"Bash(cp 'D:\\\\projects\\\\chrka\\\\myNote\\\\ka-note\\\\server\\\\ka-note.db-shm' 'D:\\\\projects\\\\chrka\\\\myNote\\\\ka-note\\\\server\\\\ka-note.db-wal' /c/temp/ && ls -la /c/temp/ka-note.db*)",
"Bash(sqlite3 'C:\\\\temp\\\\ka-note.db' '.recover' 2>/dev/null > /c/temp/recovered.sql && wc -l /c/temp/recovered.sql && grep -i \"asset\\\\|room\" /c/temp/recovered.sql | head -5)",
"Bash(python -X utf8 -c \"\nimport sqlite3,json\nc=sqlite3.connect\\(r'D:\\\\projects\\\\chrka\\\\myNote\\\\ka-note\\\\server\\\\data\\\\ka-note.db'\\)\nc.row_factory=sqlite3.Row\npids={r['person_id'] for r in c.execute\\('SELECT DISTINCT person_id FROM asset_persons WHERE deleted_at IS NULL'\\)}\nprint\\('Person IDs in assets:', pids\\)\n# resolve from contexts.json\nctxs=json.load\\(open\\(r'D:\\\\projects\\\\chrka\\\\myNote\\\\ka-note\\\\server\\\\data\\\\backup-remote\\\\contexts.json',encoding='utf-8'\\)\\)\nfor cx in ctxs:\n if cx['id'] in pids:\n print\\(cx['id'],'->',cx['name'],'meta:',\\(cx.get\\('meta'\\) or {}\\).get\\('fullName'\\)\\)\n\")",
"Bash(python -X utf8 -c \"\nimport os,re\nd=r'D:\\\\projects\\\\chrka\\\\brain\\\\03 Bereiche\\\\Inventar'\nremoved=0\nfor f in os.listdir\\(d\\):\n p=os.path.join\\(d,f\\)\n try:\n head=open\\(p,encoding='utf-8'\\).read\\(500\\)\n except: continue\n if 'kanote-import' in head:\n os.remove\\(p\\); removed+=1\nprint\\('removed notes:',removed\\)\n# wipe attachments/inventar\nad=r'D:\\\\projects\\\\chrka\\\\brain\\\\07 Anhänge\\\\inventar'\ncnt=0\nfor f in os.listdir\\(ad\\):\n os.remove\\(os.path.join\\(ad,f\\)\\); cnt+=1\nprint\\('removed images:',cnt\\)\n\")",
"Write(D:\\\\projects\\\\chrka\\\\brain\\\\.claude\\\\commands\\\\meeting-manual.md)",
"Edit(D:\\\\projects\\\\chrka\\\\brain\\\\.claude\\\\commands\\\\meeting-manual.md)",
"Bash(git -C \"D:/projects/chrka/brain\" add \"docs/superpowers/specs/2026-05-06-meeting-end-auto-import-design.md\")",
"Bash(git -C \"D:/projects/chrka/brain\" commit -m \"docs: add meeting-end auto-import design spec\")",
"Bash(git -C \"D:/projects/chrka/brain\" commit -m \"docs: add speaker mapping component to meeting-end spec\")",
"Bash(git -C \"D:/projects/chrka/brain\" commit -m \"docs: clarify backfill scope and recording link in meeting-end spec\")",
"Bash(git -C \"D:/projects/chrka/brain\" add \"docs/superpowers/plans/2026-05-06-meeting-end-auto-import.md\")",
"Bash(git -C \"D:/projects/chrka/brain\" commit -m \"docs: add meeting-end auto-import implementation plan\")",
"Bash(git -C \"D:/projects/chrka/brain\" status -sb)",
"Bash(node --test test/vtt-parser.test.js)",
"Bash(npm test *)",
"Bash(node --test scripts/test/vtt-parser.test.js)",
"Bash(node --test test/speaker-matcher.test.js)",
"Bash(node -e ' *)",
"Bash(node --test test/graph-meetings.test.js)",
"Bash(node --test test/o365-calendar.test.js)",
"Bash(cd /d/projects/chrka/brain && git show --stat 997e941)",
"Bash(cd /d/projects/chrka/brain && git show 997e941)",
"Read(//d/d/projects/chrka/brain/**)",
"Bash(cd /d D:\\\\projects\\\\chrka\\\\brain\\\\scripts && node --test test/o365-calendar.test.js)",
"Bash(cd /D/projects/chrka/brain && git add scripts/lib/o365-calendar.js scripts/test/o365-calendar.test.js && git commit -m \"$\\(cat <<'EOF'\nrefactor\\(o365\\): extract authenticated graph client helper, add getEventById validation\n\nExtract buildAuthenticatedClient\\(\\) helper to eliminate duplicate MSAL token\nacquisition logic in getCalendarEvents and getEventById. Add eventId validation\nand error wrapping with cause chain in getEventById.\n\nNew tests verify eventId type and empty-string checks.\n\nCo-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>\nEOF\n\\)\")",
"Bash(cd /d/projects/chrka/brain && git show 51613ff)",
"Bash(node --test test/fetch-meeting-artifacts.test.js)",
"Bash(cd \"D:\\\\projects\\\\chrka\\\\brain\" && git add scripts/fetch-meeting-artifacts.js scripts/test/fetch-meeting-artifacts.test.js && git commit -m \"$\\(cat <<'EOF'\nfeat\\(scripts\\): add fetch-meeting-artifacts orchestrator cli\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\nEOF\n\\)\")",
"Bash(cd /d/projects/chrka/brain && git show 15499cf --stat)",
"Bash(node --test scripts/test/fetch-meeting-artifacts.test.js)",
"Bash(cd /d/projects/chrka/brain && git show 15499cf)",
"Bash(node --test test/backfill-series-id.test.js)",
"Bash(cd \"D:/projects/chrka/brain\" && git add scripts/backfill-series-id.js scripts/test/backfill-series-id.test.js && git commit -m \"$\\(cat <<'EOF'\nfeat\\(scripts\\): add backfill-series-id script for jour-fixe agendas\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\nEOF\n\\)\")",
"Bash(cd /d/projects/chrka/brain && git show 0679aa0 --stat)",
"Bash(node --test scripts/test/backfill-series-id.test.js)",
"Bash(node -e \"const m = require\\('./scripts/backfill-series-id.js'\\); console.log\\('Exports:', Object.keys\\(m\\)\\); console.log\\('upsertFrontmatterField:', typeof m.upsertFrontmatterField\\); console.log\\('backfill:', typeof m.backfill\\);\")",
"Bash(node backfill-series-id.js \"../03 Bereiche/Jour Fixe/IT Team/Agenda IT Team.md\" \"Jour\\\\\\\\s*Fixe.*IT\\\\\\\\s*Team\")",
"Bash(node -e \"const {getCalendarEvents} = require\\('./lib/o365-calendar.js'\\); getCalendarEvents\\(30\\).then\\(es => { console.log\\(JSON.stringify\\(es.map\\(e => \\({title:e.title, isRecurring:e.isRecurring, start:e.start}\\)\\), null, 2\\)\\); }\\).catch\\(e => console.error\\(e.message\\)\\)\")",
"Bash(node -e \"const {getCalendarEvents} = require\\('./lib/o365-calendar.js'\\); getCalendarEvents\\(30\\).then\\(es => { const matches = es.filter\\(e => /jour.*fix|IT.Team|landata/i.test\\(e.title\\)\\); console.log\\(JSON.stringify\\(matches.map\\(e => \\({title:e.title, isRecurring:e.isRecurring, id:e.id}\\)\\), null, 2\\)\\); }\\).catch\\(e => console.error\\(e.message\\)\\)\")",
"Bash(node -e \"const {getCalendarEvents} = require\\('./lib/o365-calendar.js'\\); getCalendarEvents\\(60\\).then\\(es => { const matches = es.filter\\(e => /IT.*Team|landata|losch|brauer|kara|stieve|klein/i.test\\(e.title\\)\\); console.log\\(JSON.stringify\\(matches.map\\(e => \\({title:e.title, isRecurring:e.isRecurring}\\)\\), null, 2\\)\\); console.error\\('total events:', es.length\\); }\\).catch\\(e => console.error\\(e.message\\)\\)\")",
"Bash(node backfill-series-id.js \"../03 Bereiche/Jour Fixe/LANdata/Agenda LANdata.md\" \"Status.*Meeting.*KRAH.*LANdata\")",
"Bash(cd D:/projects/chrka/brain && git status && git diff --stat)",
"Edit(D:\\\\projects\\\\chrka\\\\brain\\\\.claude\\\\commands\\\\meeting.md)",
"Bash(node backfill-series-id.js \"../03 Bereiche/Jour Fixe/IT Team/Agenda IT Team.md\" \"diverse.IT.Themen\")",
"Bash(cd D:/projects/chrka/brain && git add \"03 Bereiche/Jour Fixe/IT Team/Agenda IT Team.md\" && git commit -m \"feat\\(jour-fixe\\): backfill o365_series_id for IT Team\" && git push origin main 2>&1)",
"Bash(node fetch-meeting-artifacts.js --o365-id \"AAMkADM1ZWEzODc3LTRjMTEtNGExYi04MGMwLWNhZTE0ZjkyNDVjOAFRAAgI3qsCaprAAEYAAAAAMySJViLo9EWl32JswSRPzgcA4E3NSW0FuEieq6kPTtaG_AAAAAABDQAADcgZwJ68IkWODv1ql-eWvQAGRrSRngAAEA==\" --out ./test-fetch.json)",
"Bash(node -e \"const j=require\\('./test-fetch.json'\\); console.log\\('transcript:', j.transcript?j.transcript.slice\\(0,200\\)+'...':'null'\\); console.log\\('recap:', j.recap?'YES \\(id='+j.recap.id+'\\)':'null'\\); console.log\\('recordingUrl:', j.recordingUrl\\); console.log\\('warnings:', j.warnings\\);\")",
"Bash(node -e \"const j=require\\('./test-fetch.json'\\); console.log\\('onlineMeetingId:', j.meeting?.onlineMeetingId\\); console.log\\('transcript:', j.transcript?j.transcript.length+' chars':'null'\\); console.log\\('recap:', j.recap?'YES \\(id='+j.recap.id+'\\)':'null'\\); console.log\\('recordingUrl:', j.recordingUrl\\); console.log\\('warnings:', j.warnings\\);\")",
"Bash(node -e \"const j=require\\('./test-fetch.json'\\); console.log\\('transcript:', j.transcript?j.transcript.length+' chars / '+j.transcript.split\\('\\\\n'\\).length+' lines':'null'\\); console.log\\('recap:', j.recap?'YES \\(id='+j.recap.id+'\\)':'null'\\); console.log\\('recordingUrl:', j.recordingUrl\\); console.log\\('warnings:', j.warnings\\); if\\(j.transcript\\) console.log\\('--- first 400 chars ---\\\\n'+j.transcript.slice\\(0,400\\)\\);\")",
"Bash(node -e \"const j=require\\('./test-fetch.json'\\); console.log\\('transcript:', j.transcript?j.transcript.length+' chars':'null'\\); console.log\\('recap:', j.recap?'YES \\(id='+j.recap.id+', notes:'+\\(j.recap.meetingNotes?.length||0\\)+', actions:'+\\(j.recap.actionItems?.length||0\\)+'\\)':'null'\\); console.log\\('recordingUrl:', j.recordingUrl\\); console.log\\('warnings:', j.warnings\\); if\\(j.recap\\) console.log\\('--- recap keys ---', Object.keys\\(j.recap\\)\\);\")",
"Bash(node -e \"const j=require\\('./test-fetch.json'\\); console.log\\('transcript:', j.transcript?.length, 'chars'\\); const r=j.recap; if\\(r.insights\\){console.log\\('recap: '+r.insights.length+' insights, total notes:', r.insights.reduce\\(\\(s,i\\)=>s+\\(i.meetingNotes?.length||0\\),0\\), 'actions:', r.insights.reduce\\(\\(s,i\\)=>s+\\(i.actionItems?.length||0\\),0\\)\\);} else { console.log\\('recap: notes:', r.meetingNotes?.length, 'actions:', r.actionItems?.length\\); } console.log\\('recordingUrl:', j.recordingUrl\\); console.log\\('warnings:', j.warnings\\);\")",
"Bash(rm D:/projects/chrka/brain/scripts/test-fetch.json 2>/dev/null; cd D:/projects/chrka/brain && git add scripts/lib/graph-meetings.js scripts/fetch-meeting-artifacts.js scripts/test/graph-meetings.test.js && git status)",
"Bash(git -C D:/projects/chrka/brain status --short)",
"Bash(ls scripts/test-recording-*.json)",
"Bash(node -e \"console.log\\(new Date\\(\\).toISOString\\(\\)\\)\")",
"Bash(node scripts/fetch-meeting-artifacts.js --o365-id \"AAMkADM1ZWEzODc3LTRjMTEtNGExYi04MGMwLWNhZTE0ZjkyNDVjOAFRAAgI3qsCaprAAEYAAAAAMySJViLo9EWl32JswSRPzgcA4E3NSW0FuEieq6kPTtaG_AAAAAABDQAADcgZwJ68IkWODv1ql-eWvQAAj7FwfQAAEA==\" --out scripts/test-recording.json)",
"Bash(node -e \"const r = require\\('./scripts/test-recording.json'\\); console.log\\('recordingUrl:', r.recordingUrl\\); console.log\\('transcript len:', r.transcript ? r.transcript.length : null\\); console.log\\('recap:', r.recap ? 'present' : null\\); console.log\\('warnings:', r.warnings\\);\")",
"Bash(node fetch-meeting-artifacts.js --o365-id \"AAMkADM1ZWEzODc3LTRjMTEtNGExYi04MGMwLWNhZTE0ZjkyNDVjOAFRAAgI3q_5aRVAAEYAAAAAMySJViLo9EWl32JswSRPzgcA4E3NSW0FuEieq6kPTtaG_AAAAAABDQAADcgZwJ68IkWODv1ql-eWvQAKCAXlnQAAEA==\" --out /tmp/artifacts.json)",
"Bash(node -e \"const j=require\\('/tmp/artifacts.json'\\);console.log\\('keys:',Object.keys\\(j\\)\\);console.log\\('warnings:',j.warnings\\);console.log\\('hasTranscript:',!!j.transcript,'hasRecap:',!!j.recap,'recordingUrl:',j.recordingUrl\\);console.log\\('meeting:',JSON.stringify\\(j.meeting,null,2\\)\\);\")",
"Bash(node -e \"const j=require\\('/tmp/artifacts.json'\\);console.log\\('warnings:',j.warnings\\);console.log\\('hasTranscript:',!!j.transcript,'hasRecap:',!!j.recap,'recordingUrl:',j.recordingUrl\\);console.log\\('meeting:',JSON.stringify\\(j.meeting,null,2\\)\\);\")",
"Bash(node fetch-meeting-artifacts.js --o365-id \"AAMkADM1ZWEzODc3LTRjMTEtNGExYi04MGMwLWNhZTE0ZjkyNDVjOAFRAAgI3q_5aRVAAEYAAAAAMySJViLo9EWl32JswSRPzgcA4E3NSW0FuEieq6kPTtaG_AAAAAABDQAADcgZwJ68IkWODv1ql-eWvQAKCAXlnQAAEA==\" --out artifacts.json)",
"Bash(node -e \"const j=require\\('./artifacts.json'\\);console.log\\('warnings:',j.warnings\\);console.log\\('hasTranscript:',!!j.transcript,'hasRecap:',!!j.recap,'recordingUrl:',j.recordingUrl\\);console.log\\('meeting:',JSON.stringify\\(j.meeting,null,2\\)\\);\")",
"Bash(node -e \"const j=require\\('./artifacts.json'\\);console.log\\('=== RECAP ==='\\); console.log\\(JSON.stringify\\(j.recap,null,2\\)\\);\")",
"Bash(node -e \"const j=require\\('./artifacts.json'\\); const t=j.transcript; const speakers=new Set\\(\\); t.split\\('\\\\n'\\).forEach\\(l=>{const m=l.match\\(/^\\([^:]+\\):/\\); if\\(m\\)speakers.add\\(m[1].trim\\(\\)\\);}\\); console.log\\('Speakers:',[...speakers]\\); console.log\\('Length:',t.length\\);\")",
"Bash(node -e \"const j=require\\('./artifacts.json'\\);console.log\\(j.transcript\\);\")",
"Bash(curl -sS -o /tmp/doc3075.json -w \"HTTP %{http_code}\\\\n\" -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/3075/\")",
"Read(//tmp/**)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/3075/\" -o doc3075.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/3075/\" -o d3075.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/3315/\" -o d3315.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/correspondents/79/\" -o corr.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/?correspondent__id=79&page_size=50&ordering=created\" -o list.json)",
"Bash(curl -sS -H 'Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79' https://paper.straso.com/api/documents/__TRACKED_VAR__/ -o doc___TRACKED_VAR__.json)",
"Bash(cd \"03 Bereiche/Heimnetz\" && mkdir -p Server Netzwerk \"Zugriff aus dem Web\" Planung && ls)",
"Bash(mv \"Paperless-NGX.md\" \"Server/Paperless.md\")",
"Bash(mv \"NPM - NginxProxyManager.md\" \"Server/Nginx Proxy Manager.md\")",
"Bash(mv \"Konfiguration Home-Assistant.md\" \"Server/Home Assistant - Konfiguration.md\")",
"Bash(mv \"MQTT.md\" \"Server/MQTT.md\")",
"Bash(mv \"Zigbee.md\" \"Server/Zigbee.md\")",
"Bash(mv \"03 Bereiche/Heimnetz/Server/\"*.md Server/)",
"Bash(mv \"03 Bereiche/Heimnetz/Netzwerk/\"*.md Netzwerk/)",
"Bash(mv \"03 Bereiche/Heimnetz/Zugriff aus dem Web/\"*.md \"Zugriff aus dem Web/\")",
"Bash(mv \"03 Bereiche/Heimnetz/Planung/\"*.md Planung/)",
"Bash(mv \"08 Landing Pages/Heimnetz.md\" \"../../08 Landing Pages/Heimnetz.md\")",
"Bash(mv \"Netzwerk/Sophos XG Home.md\" \"../../06 Archiv/Sophos XG Home.md\")",
"Bash(mv \"Koogle-Deployment auf Azure.md\" \"../../04 Ressourcen/IT/Koogle-Deployment auf Azure.md\")",
"Bash(mv \"Umstellung IONOS Mail → GMAIL.md\" \"../../04 Ressourcen/IT/Umstellung IONOS Mail → GMAIL.md\")",
"Bash(rm \"Übersicht Heimnetz.md\")",
"Bash(node fetch-meeting-artifacts.js --help)",
"Bash(node -e \"const c=require\\('./lib/o365-calendar'\\); console.log\\(Object.keys\\(c\\)\\)\")",
"Bash(node fetch-meeting-artifacts.js --o365-id \"AAMkADM1ZWEzODc3LTRjMTEtNGExYi04MGMwLWNhZTE0ZjkyNDVjOAFRAAgI3rCCk38AAEYAAAAAMySJViLo9EWl32JswSRPzgcA4E3NSW0FuEieq6kPTtaG_AAAAAABDQAADcgZwJ68IkWODv1ql-eWvQAAj7FwfQAAEA==\" --out /tmp/landata.json)",
"Bash(node fetch-meeting-artifacts.js --o365-id \"AAMkADM1ZWEzODc3LTRjMTEtNGExYi04MGMwLWNhZTE0ZjkyNDVjOAFRAAgI3rCCk38AAEYAAAAAMySJViLo9EWl32JswSRPzgcA4E3NSW0FuEieq6kPTtaG_AAAAAABDQAADcgZwJ68IkWODv1ql-eWvQAGRrSRngAAEA==\" --out /tmp/itteam.json)",
"Bash(cygpath -w /tmp/landata.json)",
"Bash(source scripts/.env && curl -sS -H \"Authorization: Token $PAPERLESS_TOKEN\" \"$PAPERLESS_URL/api/documents/?correspondent__id=32&page_size=50&ordering=-created\" | python -c \"import json,sys; d=json.load\\(sys.stdin\\); [print\\(x['id'], x.get\\('created',''\\)[:10], x.get\\('title',''\\)\\) for x in d['results']]\")",
"Read(//c/Users/d-chrka/OneDrive/Dokumente/steuerfaelle/**)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/?correspondent__id=32&page_size=100&ordering=-created\" -o /tmp/fa_olpe.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/?correspondent__id=32&page_size=100&ordering=-created\" -o fa_olpe.json)",
"Bash(for id in 3200 2986 2507; do echo \"=== $id ===\"; curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/$id/\" -o doc_$id.json; python -c \"import json; d=json.load\\(open\\('doc_$id.json',encoding='utf-8'\\)\\); print\\(d.get\\('title'\\)\\); print\\(d.get\\('content',''\\)\\)\" 2>&1 | head -300; done)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/?query=Theile-Ochel+Steuerbescheid&page_size=20\" -o hetti.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/?query=Hedwig+Steuer&page_size=20\" -o hetti2.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/correspondents/?name__icontains=Theile\" -o c1.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/correspondents/?name__icontains=Hedwig\" -o c2.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/?query=Theile\" -o ht.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/3317/\" -o d3317.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/3305/\" -o d3305.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/correspondents/?name__icontains=N%C3%BCrnberger\" -o cn.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/?correspondent__id=12&page_size=100&ordering=-created\" -o nb.json)",
"Bash(for id in 3227 3019 2791 1989 3142 354 2425; do echo \"===== $id =====\"; curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/$id/\" -o doc_$id.json; python -c \"import json; d=json.load\\(open\\('doc_$id.json',encoding='utf-8'\\)\\); open\\('doc_$id.txt','w',encoding='utf-8'\\).write\\(f\\\\\"TITLE: {d.get\\('title'\\)}\\\\nCREATED: {d.get\\('created'\\)}\\\\n\\\\n{d.get\\('content',''\\)[:3500]}\\\\\"\\)\"; cat doc_$id.txt; echo \"\"; done 2>&1 | head -400)",
"Bash(python -c \"\nimport json\nfor id in ['1989','3142','355','2095','2121','2791','3227']:\n d=json.load\\(open\\(f'doc_{id}.json',encoding='utf-8'\\)\\) if __import__\\('os'\\).path.exists\\(f'doc_{id}.json'\\) else None\n if not d:\n continue\n c = d.get\\('content',''\\)\n # find Beitragsjahr / Geleistete\n import re\n print\\('==',id,d.get\\('title'\\),'=='\\)\n for m in re.finditer\\(r'\\(Beitragsjahr|Geleistete Beitr|Eingezahlte Beitr|Aktueller Bruttobeitrag|Aktueller Nettobeitrag|Bescheinigung\\)[^\\\\n]{0,80}',c\\):\n print\\(' ',m.group\\(0\\)\\)\n print\\(\\)\n\" 2>&1 | head -80)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/?query=Steuermeldung+2024\" -o sm24.json)",
"Bash(for id in 1989 3142 355 2095 2121; do curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/$id/\" -o doc_$id.json; done; echo done)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/?correspondent__id=12&query=Beitragsjahr+2024\" -o sm24.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/?correspondent__id=12&query=2024+10+Abs+2a\" -o sm24b.json)",
"Bash(rm -f cn.json nb.json nb_list.txt sm24.json sm24b.json doc_*.json doc_*.txt)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/3306/\" -o d3306.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/correspondents/?name__icontains=Union\" -o cu.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/?correspondent__id=3&page_size=100&ordering=-created\" -o ui.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/3320/\" -o d3320.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/3143/\" -o d3143.json)",
"Bash(TOKEN=\"41f79ac7b624a83272bb8fbf603776547b133b79\"\nURL=\"https://paper.straso.com/api/documents\"\n\n# Pattern: \"Nürnberger BasisRente <Typ> <Jahr>\"\n# Steuermeldung = ZfA-Meldung § 10 Abs. 2a EStG \\(jeweils Februar, Beitragsjahr im Inhalt\\)\n# Wertmitteilung = § 7a AltZertG \\(jeweils September\\)\n# Erhöhung = Dynamik \\(jeweils April, wirkt zum 01.06.\\)\n\ndeclare -A RENAME=\\(\n # Steuermeldungen \\(Beitragsjahr\\)\n [3305]=\"Nürnberger BasisRente Steuermeldung 2025\"\n [3143]=\"Nürnberger BasisRente Steuermeldung 2024\"\n [2791]=\"Nürnberger BasisRente Steuermeldung 2023\"\n [1989]=\"Nürnberger BasisRente Steuermeldung 2022\"\n [355]=\"Nürnberger BasisRente Steuermeldung 2021\"\n [2095]=\"Nürnberger BasisRente Steuermeldung 2020\"\n [351]=\"Nürnberger BasisRente Steuermeldung 2019\"\n [2121]=\"Nürnberger BasisRente Steuermeldung 2018\"\n [2112]=\"Nürnberger BasisRente Steuermeldung 2017\"\n [2114]=\"Nürnberger BasisRente Steuermeldung 2016\"\n [2113]=\"Nürnberger BasisRente Steuermeldung 2015\"\n [2109]=\"Nürnberger BasisRente Steuermeldung 2014\"\n [2107]=\"Nürnberger BasisRente Steuermeldung 2013\"\n [2106]=\"Nürnberger BasisRente Steuermeldung 2012\"\n [2105]=\"Nürnberger BasisRente Steuermeldung 2011\"\n [2102]=\"Nürnberger BasisRente Steuermeldung 2010\"\n # Wertmitteilungen \\(§ 7a AltZertG\\)\n [3227]=\"Nürnberger BasisRente Wertmitteilung 2024\"\n [3019]=\"Nürnberger BasisRente Wertmitteilung 2023\"\n [349]=\"Nürnberger BasisRente Wertmitteilung 2021\"\n [342]=\"Nürnberger BasisRente Wertmitteilung 2021 \\(2\\)\"\n [352]=\"Nürnberger BasisRente Wertmitteilung 2020\"\n [2126]=\"Nürnberger BasisRente Wertmitteilung 2019\"\n [2132]=\"Nürnberger BasisRente Wertmitteilung 2019 \\(2\\)\"\n [2119]=\"Nürnberger BasisRente Wertmitteilung 2017\"\n [2124]=\"Nürnberger BasisRente Wertmitteilung 2018\"\n # Erhöhungen \\(Dynamik\\)\n [3317]=\"Nürnberger BasisRente Erhöhung 2026\"\n [3142]=\"Nürnberger BasisRente Erhöhung 2025\"\n [3320]=\"Nürnberger BasisRente Erhöhung 2024\"\n [2425]=\"Nürnberger BasisRente Erhöhung 2023\"\n [354]=\"Nürnberger BasisRente Erhöhung 2022\"\n [353]=\"Nürnberger BasisRente Erhöhung 2021\"\n [356]=\"Nürnberger BasisRente Erhöhung 2020\"\n [2125]=\"Nürnberger BasisRente Erhöhung 2019\"\n [2115]=\"Nürnberger BasisRente Erhöhung 2018\"\n [2122]=\"Nürnberger BasisRente Erhöhung 2017\"\n [2118]=\"Nürnberger BasisRente Erhöhung 2016\"\n [2116]=\"Nürnberger BasisRente Erhöhung 2015\"\n [2117]=\"Nürnberger BasisRente Erhöhung 2014\"\n [2110]=\"Nürnberger BasisRente Erhöhung 2013\"\n [2111]=\"Nürnberger BasisRente Erhöhung 2012\"\n [2103]=\"Nürnberger BasisRente Erhöhung 2011\"\n\\)\n\nfor id in \"${!RENAME[@]}\"; do\n title=\"${RENAME[$id]}\"\n result=$\\(curl -sS -X PATCH -H \"Authorization: Token $TOKEN\" -H \"Content-Type: application/json\" \\\\\n --data \"$\\(python -c \"import json,sys; print\\(json.dumps\\({'title': sys.argv[1]}\\)\\)\" \"$title\"\\)\" \\\\\n \"$URL/$id/\" -o /dev/null -w \"%{http_code}\"\\)\n echo \"$id [$result] → $title\"\ndone\n\n# Korrespondent für 3320 setzen\ncurl -sS -X PATCH -H \"Authorization: Token $TOKEN\" -H \"Content-Type: application/json\" \\\\\n -d '{\"correspondent\": 12}' \"$URL/3320/\" -o /dev/null -w \"3320 correspondent → %{http_code}\\\\n\")",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/?correspondent__id=3&page_size=100&ordering=created\" -o ui_all.json)",
"Bash(TOKEN=\"41f79ac7b624a83272bb8fbf603776547b133b79\"\nURL=\"https://paper.straso.com/api/documents\"\n\ndeclare -A RENAME=\\(\n # Jahresunterlagen Riester \\(Februar, mit § 92 EStG-Bescheinigung\\)\n [1251]=\"Union Riester Jahresunterlagen 2019\"\n [1239]=\"Union Riester Jahresunterlagen 2020\"\n [1255]=\"Union Riester Jahresunterlagen 2021\"\n [2421]=\"Union Riester Jahresunterlagen 2022 \\(2\\)\"\n [2614]=\"Union Riester Jahresunterlagen 2022\"\n [2740]=\"Union Riester Jahresunterlagen 2023\"\n [3173]=\"Union Riester Jahresunterlagen 2024\"\n [3306]=\"Union Riester Jahresunterlagen 2025\"\n # Jahresdepotauszüge \\(Dezember\\)\n [1249]=\"Union Riester Jahresdepotauszug 2020\"\n [1267]=\"Union Riester Jahresdepotauszug 2021\"\n [1956]=\"Union Riester Jahresdepotauszug 2022\"\n [2613]=\"Union Riester Jahresdepotauszug 2023\"\n [3085]=\"Union Riester Jahresdepotauszug 2024\"\n [3274]=\"Union Riester Jahresdepotauszug 2025\"\n # Sonstige\n [54]=\"Union Riester Änderungen zur Dauerzulagebeantragung 2018\"\n\\)\n\nfor id in \"${!RENAME[@]}\"; do\n title=\"${RENAME[$id]}\"\n result=$\\(curl -sS -X PATCH -H \"Authorization: Token $TOKEN\" -H \"Content-Type: application/json\" \\\\\n --data \"$\\(python -c \"import json,sys; print\\(json.dumps\\({'title': sys.argv[1]}\\)\\)\" \"$title\"\\)\" \\\\\n \"$URL/$id/\" -o /dev/null -w \"%{http_code}\"\\)\n echo \"$id [$result] → $title\"\ndone)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/tags/10/\" -o tag10.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/?tags__id__all=10&page_size=100&ordering=-created\" -o mr.json)",
"Bash(for id in 3148 2998 367 1466; do\n curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/$id/\" -o mr_$id.json\n python -c \"import json; d=json.load\\(open\\('mr_$id.json',encoding='utf-8'\\)\\); open\\('mr_$id.txt','w',encoding='utf-8'\\).write\\(f\\\\\"==== ID {d.get\\('id'\\)} TITLE: {d.get\\('title'\\)} CREATED: {d.get\\('created'\\)} ====\\\\n\\\\n{d.get\\('content',''\\)[:4000]}\\\\n\\\\n\\\\\"\\)\"\ndone\ncat mr_3148.txt mr_2998.txt mr_367.txt mr_1466.txt 2>&1 | head -300)",
"Bash(TOKEN=\"41f79ac7b624a83272bb8fbf603776547b133b79\"\nURL=\"https://paper.straso.com/api/documents\"\n\ndeclare -A RENAME=\\(\n [3148]=\"Allianz MetallRente Standmitteilung 2025\"\n [2998]=\"Allianz MetallRente Standmitteilung 2024\"\n [367]=\"Allianz MetallRente Standmitteilung 2022\"\n [1466]=\"Allianz MetallRente Entgeltumwandlungsvereinbarung KRAH 2017\"\n\\)\n\nfor id in \"${!RENAME[@]}\"; do\n title=\"${RENAME[$id]}\"\n result=$\\(curl -sS -X PATCH -H \"Authorization: Token $TOKEN\" -H \"Content-Type: application/json\" \\\\\n --data \"$\\(python -c \"import json,sys; print\\(json.dumps\\({'title': sys.argv[1]}\\)\\)\" \"$title\"\\)\" \\\\\n \"$URL/$id/\" -o /dev/null -w \"%{http_code}\"\\)\n echo \"$id [$result] → $title\"\ndone\n\nrm -f tag10.json mr.json mr_*.json mr_*.txt mr_3148_full.txt)",
"Bash(source scripts/.env && curl -sS -H \"Authorization: Token $PAPERLESS_TOKEN\" \"$PAPERLESS_URL/api/documents/3323/\" > /tmp/doc3323.json && python -c \"import json; d=json.load\\(open\\('/tmp/doc3323.json',encoding='utf-8'\\)\\); print\\('TITLE:',d['title']\\); print\\('CREATED:',d['created']\\); print\\('CORR:',d['correspondent']\\); print\\('TAGS:',d['tags']\\); print\\('TYPE:',d['document_type']\\); print\\('---CONTENT---'\\); print\\(d['content'][:5000]\\)\")",
"Bash(source scripts/.env && curl -sS -H \"Authorization: Token $PAPERLESS_TOKEN\" \"$PAPERLESS_URL/api/documents/3323/\" -o doc3323.json && python -c \"import json; d=json.load\\(open\\('doc3323.json',encoding='utf-8'\\)\\); print\\('TITLE:',d['title']\\); print\\('CREATED:',d['created']\\); print\\('CORR:',d['correspondent']\\); print\\('TAGS:',d['tags']\\); print\\('TYPE:',d['document_type']\\); print\\('---'\\); print\\(d['content'][:6000]\\)\")",
"Bash(source scripts/.env && curl -sS -w \"\\\\nHTTP:%{http_code}\\\\n\" -H \"Authorization: Token $PAPERLESS_TOKEN\" \"${PAPERLESS_URL}api/documents/3323/\" -o doc3323.json && ls -la doc3323.json && head -c 500 doc3323.json)",
"Bash(source scripts/.env && curl -sS -H \"Authorization: Token $PAPERLESS_TOKEN\" \"${PAPERLESS_URL}api/correspondents/21/\" -o corr21.json && curl -sS -H \"Authorization: Token $PAPERLESS_TOKEN\" \"${PAPERLESS_URL}api/tags/11/\" -o tag11.json && curl -sS -H \"Authorization: Token $PAPERLESS_TOKEN\" \"${PAPERLESS_URL}api/documents/?correspondent__id=21&page_size=100&ordering=-created\" -o provlist.json && python -c \"\nimport json\nc=json.load\\(open\\('corr21.json',encoding='utf-8'\\)\\); print\\('CORR:',c['name'],'docs:',c.get\\('document_count'\\)\\)\nt=json.load\\(open\\('tag11.json',encoding='utf-8'\\)\\); print\\('TAG:',t['name']\\)\nl=json.load\\(open\\('provlist.json',encoding='utf-8'\\)\\)\nprint\\('TOTAL:',l['count']\\)\nfor d in l['results']:\n print\\(d['id'], d['created'][:10], d['title']\\)\n\")",
"Bash(source scripts/.env && for id in 1951 368 3322; do echo \"=== $id ===\"; curl -sS -H \"Authorization: Token $PAPERLESS_TOKEN\" \"${PAPERLESS_URL}api/documents/$id/\" -o \"d$id.json\"; python -c \"\nimport json\nd=json.load\\(open\\('d$id.json',encoding='utf-8'\\)\\)\nprint\\('TITLE:',d['title'],'CREATED:',d['created'][:10],'TAGS:',d['tags']\\)\nprint\\(d['content'][:1500]\\)\n\"; done)",
"Bash(source scripts/.env && curl -sS -H \"Authorization: Token $PAPERLESS_TOKEN\" \"${PAPERLESS_URL}api/correspondents/?name__icontains=volkswohl\" -o vw.json && python -c \"import json; d=json.load\\(open\\('vw.json',encoding='utf-8'\\)\\); [print\\(c['id'],c['name']\\) for c in d['results']]\")",
"Bash(source scripts/.env && curl -sS -H \"Authorization: Token $PAPERLESS_TOKEN\" \"${PAPERLESS_URL}api/correspondents/?name__icontains=volkswohl\" && echo \"---\" && curl -sS -H \"Authorization: Token $PAPERLESS_TOKEN\" \"${PAPERLESS_URL}api/correspondents/?name__icontains=kemper\")",
"Bash(source scripts/.env && for entry in \"3323|Provinzial Direktversicherung Vera Renteninformation 2026\" \"1951|Provinzial Direktversicherung Vera Renteninformation 2023\" \"368|Provinzial Direktversicherung Vera Renteninformation 2022\"; do\n id=\"${entry%%|*}\"; title=\"${entry##*|}\"\n code=$\\(curl -sS -o /dev/null -w \"%{http_code}\" -X PATCH -H \"Authorization: Token $PAPERLESS_TOKEN\" -H \"Content-Type: application/json\" \"${PAPERLESS_URL}api/documents/$id/\" -d \"{\\\\\"title\\\\\":\\\\\"$title\\\\\"}\"\\)\n echo \"$id -> $title [HTTP $code]\"\ndone)",
"Bash(source scripts/.env && curl -sS -H \"Authorization: Token $PAPERLESS_TOKEN\" \"${PAPERLESS_URL}api/correspondents/?name__icontains=volkswohl\" && echo && curl -sS -H \"Authorization: Token $PAPERLESS_TOKEN\" \"${PAPERLESS_URL}api/documents/3322/\" -o d3322.json && python -c \"\nimport json\nd=json.load\\(open\\('d3322.json',encoding='utf-8'\\)\\)\nprint\\('TITLE:',d['title'],'CORR:',d['correspondent'],'TAGS:',d['tags'],'CREATED:',d['created'][:10]\\)\nprint\\(d['content'][:8000]\\)\n\")",
"Bash(source scripts/.env && curl -sS -o /dev/null -w \"HTTP %{http_code}\\\\n\" -X PATCH -H \"Authorization: Token $PAPERLESS_TOKEN\" -H \"Content-Type: application/json\" \"${PAPERLESS_URL}api/documents/3322/\" -d '{\"title\":\"Volkswohl Bund BU Vera Dynamik-Nachtrag 2025\"}' && rm -f d3322.json c3322.txt)",
"Bash(source scripts/.env && curl -sS -H \"Authorization: Token $PAPERLESS_TOKEN\" \"${PAPERLESS_URL}api/documents/?query=880,12\" -o s1.json && curl -sS -H \"Authorization: Token $PAPERLESS_TOKEN\" \"${PAPERLESS_URL}api/documents/?query=L102856042\" -o s2.json && python -c \"\nimport json,sys\nsys.stdout.reconfigure\\(encoding='utf-8'\\)\nfor f,l in [\\('s1.json','Q=880,12'\\),\\('s2.json','Q=L102856042'\\)]:\n d=json.load\\(open\\(f,encoding='utf-8'\\)\\)\n print\\('===',l,'count=',d['count']\\)\n for r in d['results']:\n print\\(r['id'], r['created'][:10], r['title']\\)\n\")",
"Bash(source scripts/.env && curl -sS -H \"Authorization: Token $PAPERLESS_TOKEN\" \"${PAPERLESS_URL}api/documents/?query=Provinzial Bescheinigung\" -o s3.json && curl -sS -H \"Authorization: Token $PAPERLESS_TOKEN\" \"${PAPERLESS_URL}api/documents/?query=Direktversicherung Vera\" -o s4.json && curl -sS -H \"Authorization: Token $PAPERLESS_TOKEN\" \"${PAPERLESS_URL}api/documents/?query=880,12\" -o s5.json && python -c \"\nimport json,sys\nsys.stdout.reconfigure\\(encoding='utf-8'\\)\nfor f,l in [\\('s3.json','Provinzial Bescheinigung'\\),\\('s4.json','Direktversicherung Vera'\\)]:\n d=json.load\\(open\\(f,encoding='utf-8'\\)\\)\n print\\('===',l,'count=',d['count']\\)\n for r in d['results'][:10]:\n print\\(r['id'], r['created'][:10], r['correspondent'], r['title']\\)\n\")",
"Bash(source scripts/.env && curl -sS -H \"Authorization: Token $PAPERLESS_TOKEN\" \"${PAPERLESS_URL}api/documents/?query=Provinzial%20Bescheinigung\" -o s3.json && curl -sS -H \"Authorization: Token $PAPERLESS_TOKEN\" \"${PAPERLESS_URL}api/documents/?query=Direktversicherung%20Vera\" -o s4.json && python -c \"\nimport json,sys\nsys.stdout.reconfigure\\(encoding='utf-8'\\)\nfor f,l in [\\('s3.json','Provinzial Bescheinigung'\\),\\('s4.json','Direktversicherung Vera'\\)]:\n d=json.load\\(open\\(f,encoding='utf-8'\\)\\)\n print\\('===',l,'count=',d['count']\\)\n for r in d['results'][:15]:\n print\\(r['id'], r['created'][:10], 'corr',r['correspondent'], r['title']\\)\n\")",
"Bash(source scripts/.env && curl -sS -H \"Authorization: Token $PAPERLESS_TOKEN\" \"${PAPERLESS_URL}api/correspondents/?name__icontains=canada\" -o cl.json && python -c \"\nimport json,sys\nsys.stdout.reconfigure\\(encoding='utf-8'\\)\nd=json.load\\(open\\('cl.json',encoding='utf-8'\\)\\)\nfor c in d['results']: print\\(c['id'],c['name'],'docs:',c['document_count']\\)\n\")",
"Bash(source scripts/.env && curl -sS -H \"Authorization: Token $PAPERLESS_TOKEN\" \"${PAPERLESS_URL}api/documents/?correspondent__id=82&page_size=100&ordering=-created\" -o cllist.json && python -c \"\nimport json,sys\nsys.stdout.reconfigure\\(encoding='utf-8'\\)\nd=json.load\\(open\\('cllist.json',encoding='utf-8'\\)\\)\nprint\\('TOTAL:',d['count']\\)\nfor r in d['results']:\n print\\(r['id'], r['created'][:10], 'tags',r['tags'], r['title']\\)\n\")",
"Bash(source scripts/.env && curl -sS -H \"Authorization: Token $PAPERLESS_TOKEN\" \"${PAPERLESS_URL}api/tags/9/\" && echo && for id in 3256 3266 3048 1521 1509; do\n curl -sS -H \"Authorization: Token $PAPERLESS_TOKEN\" \"${PAPERLESS_URL}api/documents/$id/\" -o \"cl$id.json\"\ndone && python -c \"\nimport json,sys\nsys.stdout.reconfigure\\(encoding='utf-8'\\)\nfor id in [3256,3266,3048,1521,1509]:\n d=json.load\\(open\\(f'cl{id}.json',encoding='utf-8'\\)\\)\n print\\('===',id,d['title'],d['created'][:10],'==='\\)\n print\\(d['content'][:4000]\\)\n print\\(\\)\n\")",
"Bash(source scripts/.env && for entry in \\\\\n \"3256|Canada Life CAN Generation Jährliche Information 2025\" \\\\\n \"3266|Canada Life CAN Generation Jährliche Information 2025 #2\" \\\\\n \"3048|Canada Life CAN Generation Jährliche Information 2024\" \\\\\n \"2551|Canada Life CAN Generation Jährliche Information 2023\" \\\\\n \"1560|Canada Life CAN Generation Jährliche Information 2022\" \\\\\n \"1519|Canada Life CAN Generation Jährliche Information 2021\" \\\\\n \"1517|Canada Life CAN Generation Jährliche Information 2020-12\" \\\\\n \"1522|Canada Life CAN Generation Jährliche Information 2020-05\" \\\\\n \"1510|Canada Life CAN Generation Jährliche Information 2019\" \\\\\n \"1513|Canada Life CAN Generation Jährliche Information 2018\" \\\\\n \"1499|Canada Life CAN Generation Jährliche Information 2017\" \\\\\n \"1516|Canada Life CAN Generation Anteilguthaben 2016\" \\\\\n \"1512|Canada Life CAN Generation Anteilguthaben 2015\" \\\\\n \"1515|Canada Life CAN Generation Anteilguthaben 2014\" \\\\\n \"1503|Canada Life CAN Generation Anteilguthaben 2013\" \\\\\n \"1505|Canada Life CAN Generation Bonusanpassung 2012\" \\\\\n \"1494|Canada Life CAN Generation Information 2011\" \\\\\n \"1506|Canada Life CAN Generation Anteilguthaben 2010\" \\\\\n \"1504|Canada Life CAN Generation Anteilguthaben 2009\" \\\\\n \"1500|Canada Life CAN Generation Anteilguthaben 2008\" \\\\\n \"1497|Canada Life CAN Generation Anteilguthaben 2007\" \\\\\n \"1507|Canada Life CAN Generation Anteilguthaben 2006\" \\\\\n \"1508|Canada Life CAN Generation Anteilguthaben 2005\" \\\\\n \"1498|Canada Life CAN Generation Anteilguthaben 2004\" \\\\\n \"1521|Canada Life CAN Generation Versicherungsschein 2003\" \\\\\n \"1520|Canada Life CAN Generation Versicherungsbedingungen 2003\" \\\\\n \"1509|Canada Life CAN Generation Vertragsbeginn 2003\" \\\\\n \"1511|Canada Life CAN Generation Bezugsberechtigte Todesfall 2020\" \\\\\n \"1496|Canada Life CAN Generation Änderung Todesfall 2013\" \\\\\n \"1493|Canada Life CAN Generation Änderung bezugsberechtigte Person 2013\" \\\\\n \"1495|Canada Life CAN Generation Änderung Bezugsberechtigter 2013\" \\\\\n \"1518|Canada Life CAN Generation DSGVO 2018\" \\\\\n \"1501|Canada Life CAN Generation Umfirmierung 2016\" \\\\\n \"1502|Canada Life CAN Generation SEPA-Information 2013\" \\\\\n \"1514|Canada Life CAN Generation Wichtige Begriffe 2021\" \\\\\n ; do\n id=\"${entry%%|*}\"; title=\"${entry##*|}\"\n body=$\\(python -c \"import json; print\\(json.dumps\\({'title':'$title'}\\)\\)\"\\)\n code=$\\(curl -sS -o /dev/null -w \"%{http_code}\" -X PATCH -H \"Authorization: Token $PAPERLESS_TOKEN\" -H \"Content-Type: application/json\" \"${PAPERLESS_URL}api/documents/$id/\" -d \"$body\"\\)\n echo \"$id [$code] $title\"\ndone)",
"Bash(source scripts/.env && curl -sS -H \"Authorization: Token $PAPERLESS_TOKEN\" \"${PAPERLESS_URL}api/documents/1461/\" -o d1461.json && python -c \"\nimport json,sys\nsys.stdout.reconfigure\\(encoding='utf-8'\\)\nd=json.load\\(open\\('d1461.json',encoding='utf-8'\\)\\)\nprint\\('TITLE:',d['title'],'CORR:',d['correspondent'],'TAGS:',d['tags'],'CREATED:',d['created'][:10]\\)\nprint\\(d['content'][:6000]\\)\n\")",
"Bash(source scripts/.env && curl -sS -H \"Authorization: Token $PAPERLESS_TOKEN\" \"${PAPERLESS_URL}api/correspondents/80/\" -o c80.json && curl -sS -H \"Authorization: Token $PAPERLESS_TOKEN\" \"${PAPERLESS_URL}api/documents/?correspondent__id=80&page_size=50&ordering=-created\" -o adv.json && python -c \"\nimport json,sys\nsys.stdout.reconfigure\\(encoding='utf-8'\\)\nc=json.load\\(open\\('c80.json',encoding='utf-8'\\)\\); print\\('CORR:',c['name'],'docs:',c['document_count']\\)\nl=json.load\\(open\\('adv.json',encoding='utf-8'\\)\\)\nfor r in l['results']: print\\(r['id'], r['created'][:10], 'tags',r['tags'], r['title']\\)\n\")",
"Bash(source scripts/.env && curl -sS -o /dev/null -w \"HTTP %{http_code}\\\\n\" -X PATCH -H \"Authorization: Token $PAPERLESS_TOKEN\" -H \"Content-Type: application/json\" \"${PAPERLESS_URL}api/documents/1461/\" -d '{\"title\":\"Advigon Versicherung Vera Leistungsabrechnung 2021\"}' && rm -f d1461.json c80.json adv.json)",
"Bash(source scripts/.env && curl -sS -H \"Authorization: Token $PAPERLESS_TOKEN\" \"${PAPERLESS_URL}api/correspondents/?name__icontains=lvm\" -o lvmc.json && python -c \"\nimport json\nd=json.load\\(open\\('lvmc.json',encoding='utf-8'\\)\\)\nfor c in d['results']: print\\(c['id'],c['name'],'docs:',c['document_count']\\)\n\")",
"Bash(source scripts/.env && curl -sS -H \"Authorization: Token $PAPERLESS_TOKEN\" \"${PAPERLESS_URL}api/documents/?correspondent__id=22&page_size=100&ordering=-created\" -o lvm.json && python -c \"\nimport json,sys\nsys.stdout.reconfigure\\(encoding='utf-8'\\)\nl=json.load\\(open\\('lvm.json',encoding='utf-8'\\)\\)\nprint\\('TOTAL:',l['count']\\)\nfor r in l['results']: print\\(r['id'], r['created'][:10], 'tags',r['tags'], r['title']\\)\n\")",
"Bash(source scripts/.env && for t in 8 13 15 16 18 19; do curl -sS -H \"Authorization: Token $PAPERLESS_TOKEN\" \"${PAPERLESS_URL}api/tags/$t/\" | python -c \"import json,sys; d=json.load\\(sys.stdin\\); print\\(d['id'],d['name']\\)\"; done)",
"Bash(source scripts/.env && for id in 3242 3112 3107 3041 778 791 792 776 794 3297 1577; do curl -sS -H \"Authorization: Token $PAPERLESS_TOKEN\" \"${PAPERLESS_URL}api/documents/$id/\" -o \"lv$id.json\"; done && python -c \"\nimport json,sys\nsys.stdout.reconfigure\\(encoding='utf-8'\\)\nfor id in [3242,3112,3107,3041,778,791,792,776,794,3297,1577]:\n d=json.load\\(open\\(f'lv{id}.json',encoding='utf-8'\\)\\)\n print\\('===',id,d['title'],d['created'][:10],'tags',d['tags'],'==='\\)\n print\\(d['content'][:2500]\\)\n print\\(\\)\n\")",
"Bash(source scripts/.env && for entry in \\\\\n \"3242|LVM Krankenzusatz Kinder Versicherungsschein 2026\" \\\\\n \"3112|LVM Krankenzusatz Kinder Versicherungsschein 04-2025 mit ZahnPremium Justus\" \\\\\n \"3107|LVM Krankenzusatz Kinder Antrag ZahnPremium Justus 2025\" \\\\\n \"3041|LVM Krankenzusatz Kinder Versicherungsschein 2025\" \\\\\n \"3040|LVM Krankenzusatz Kinder Anpassung Versicherungsbedingungen 2025\" \\\\\n \"792|LVM Krankenzusatz Kinder Versicherungsschein 2020\" \\\\\n \"778|LVM Krankenzusatz Kinder Versicherungsschein 2018 Vicky+Justus\" \\\\\n \"791|LVM Krankenzusatz Kinder Versicherungsschein 2018 Victoria\" \\\\\n \"790|LVM Krankenzusatz Kinder Versicherungsschein 2019\" \\\\\n \"795|LVM Krankenzusatz Kinder Beitragsanpassung 2021\" \\\\\n \"796|LVM Krankenzusatz Kinder Beitragsanpassung 2022\" \\\\\n \"782|LVM Krankenzusatz Kinder Beitragsanpassung 2020\" \\\\\n \"1272|LVM Krankenzusatz Kinder Beitragsanpassung 2023\" \\\\\n \"776|LVM Krankenzusatz Kinder Eingangsbestätigung 2018a\" \\\\\n \"783|LVM Krankenzusatz Kinder Eingangsbestätigung 2018b\" \\\\\n \"793|LVM Krankenzusatz Kinder Produktinformationsblatt 2018\" \\\\\n \"1931|LVM Krankenzusatz Justus Leistungsabrechnung 2022-12\" \\\\\n \"877|LVM Krankenzusatz Justus Leistungsabrechnung 2022-11\" \\\\\n \"704|LVM Krankenzusatz Justus Leistungsabrechnung 2022-10b\" \\\\\n \"387|LVM Krankenzusatz Justus Leistungsabrechnung 2022-10a\" \\\\\n \"371|LVM Krankenzusatz Justus Leistungsabrechnung 2022-10\" \\\\\n \"788|LVM Krankenzusatz Victoria Leistungsabrechnung 2018-08\" \\\\\n \"781|LVM Krankenzusatz Victoria Leistungsabrechnung 2018-07b\" \\\\\n \"779|LVM Krankenzusatz Victoria Leistungsabrechnung 2018-07a\" \\\\\n \"3297|LVM Auslandsreise-KV Beitragsanpassung 2026\" \\\\\n \"777|LVM Auslandsreise-KV Information 2019\" \\\\\n \"794|LVM Auslandsreise-KV Versicherungsschein 2017\" \\\\\n \"787|LVM Auslandsreise-KV AVB 2017\" \\\\\n \"789|LVM Auslandsreise-KV Produktinformationsblatt 2017\" \\\\\n \"1570|LVM Auslandsreise-KV Versicherungsschein 2016\" \\\\\n \"1571|LVM Auslandsreise-KV Produktinformationsblatt 2016\" \\\\\n \"1572|LVM Auslandsreise-KV AVB 2016\" \\\\\n \"3296|LVM Hausrat Beitragsrechnung 2026\" \\\\\n \"3102|LVM Hausrat Beitragsrechnung 2025\" \\\\\n \"2846|LVM Hausrat Beitragsrechnung 2024\" \\\\\n \"2092|LVM Hausrat Beitragsrechnung 2023\" \\\\\n \"1574|LVM Hausrat Beitragsrechnung 2022\" \\\\\n \"869|LVM Hausrat Beitragsrechnung 2021\" \\\\\n \"1575|LVM Hausrat Beitragsrechnung 2020\" \\\\\n \"836|LVM Hausrat Beitragsrechnung 2019\" \\\\\n \"824|LVM Hausrat Beitragsrechnung 2018\" \\\\\n \"835|LVM Hausrat Beitragsrechnung 2017\" \\\\\n \"818|LVM Hausrat Beitragsrechnung 2016\" \\\\\n \"1576|LVM Hausrat Versicherungsschein 2021\" \\\\\n \"873|LVM Hausrat Versicherungsschein 2014\" \\\\\n \"854|LVM Hausrat Nachtrag 2014\" \\\\\n \"817|LVM Hausrat Empfehlung 2014\" \\\\\n \"825|LVM Hausrat Produktinformationsblatt 2014\" \\\\\n \"2892|LVM Sachversicherung Vertrag 2024\" \\\\\n \"844|LVM Hausrat Schaden Feuer 2019\" \\\\\n \"840|LVM Hausrat Schaden Hornissen 2019a\" \\\\\n \"822|LVM Hausrat Schaden Hornissen 2019b\" \\\\\n \"827|LVM Hausrat Schaden Hornissen 2019c\" \\\\\n \"829|LVM Hausrat Schaden Hornissen 2019d\" \\\\\n \"1573|LVM Hausrat Information Elementarversicherung 2021\" \\\\\n \"3264|LVM Wohngebäude Beitragsrechnung 2026\" \\\\\n \"843|LVM Wohngebäude Aufhebung 2016 \\(alte Police\\)\" \\\\\n \"815|LVM Wohngebäude Einverständnis Kündigung 2015\" \\\\\n \"813|LVM Wohngebäude Beratungsdokumentation 2014\" \\\\\n \"837|LVM Wohngebäude Produktinformationsblatt 2014\" \\\\\n \"1577|LVM Jagd-Haftpflicht Vera Beitragsrechnung 2022\" \\\\\n ; do\n id=\"${entry%%|*}\"; title=\"${entry##*|}\"\n body=$\\(python -c \"import json,sys; sys.stdout.reconfigure\\(encoding='utf-8'\\); print\\(json.dumps\\({'title':'$title'},ensure_ascii=False\\)\\)\"\\)\n code=$\\(curl -sS -o /dev/null -w \"%{http_code}\" -X PATCH -H \"Authorization: Token $PAPERLESS_TOKEN\" -H \"Content-Type: application/json; charset=utf-8\" \"${PAPERLESS_URL}api/documents/$id/\" --data-binary \"$body\"\\)\n echo \"$id [$code] $title\"\ndone)",
"Bash(source scripts/.env && curl -sS -H \"Authorization: Token $PAPERLESS_TOKEN\" \"$PAPERLESS_URL/api/documents/?tags__id__all=17,1&page_size=50&ordering=-created\" | python -c \"import sys,json; d=json.load\\(sys.stdin\\); print\\('count:',d['count']\\); [print\\(r['id'], '|', r.get\\('title'\\), '|', r.get\\('created_date'\\), '|', 'corr=',r.get\\('correspondent'\\),'type=',r.get\\('document_type'\\)\\) for r in d['results']]\")",
"Bash(source scripts/.env && curl -sS -H \"Authorization: Token $PAPERLESS_TOKEN\" \"$PAPERLESS_URL/api/documents/?tags__id__all=17,1&page_size=50&ordering=-created\")",
"Bash(source scripts/.env && python -c \"\nimport urllib.request, json, os\nurl = os.environ['PAPERLESS_URL'].rstrip\\('/'\\) + '/api/documents/?tags__id__all=17,1&page_size=50&ordering=-created'\nreq = urllib.request.Request\\(url, headers={'Authorization': 'Token ' + os.environ['PAPERLESS_TOKEN']}\\)\nd = json.loads\\(urllib.request.urlopen\\(req\\).read\\(\\).decode\\('utf-8'\\)\\)\nprint\\('count:', d['count']\\)\nfor r in d['results']:\n print\\(r['id'], '|', r.get\\('title'\\), '|', r.get\\('created_date'\\), '|', 'corr=', r.get\\('correspondent'\\), 'type=', r.get\\('document_type'\\)\\)\n\")",
"Bash(python -c \"\nimport urllib.request, json\nTOKEN = '41f79ac7b624a83272bb8fbf603776547b133b79'\ndef get\\(path\\):\n req = urllib.request.Request\\('https://paper.straso.com'+path, headers={'Authorization': 'Token '+TOKEN}\\)\n return json.loads\\(urllib.request.urlopen\\(req\\).read\\(\\).decode\\('utf-8'\\)\\)\n# correspondents and doc types\nfor cid in [19, 20, 47, 129]:\n try: print\\('corr', cid, '=', get\\(f'/api/correspondents/{cid}/'\\).get\\('name'\\)\\)\n except Exception as e: print\\('corr', cid, 'err', e\\)\nfor tid in [20]:\n try: print\\('type', tid, '=', get\\(f'/api/document_types/{tid}/'\\).get\\('name'\\)\\)\n except Exception as e: print\\('type', tid, 'err', e\\)\n\")",
"Bash(python -c \"\nimport urllib.request, json, sys, io\nsys.stdout = io.TextIOWrapper\\(sys.stdout.buffer, encoding='utf-8'\\)\nTOKEN = '41f79ac7b624a83272bb8fbf603776547b133b79'\ndef get\\(p\\):\n req = urllib.request.Request\\('https://paper.straso.com'+p, headers={'Authorization':'Token '+TOKEN}\\)\n return json.loads\\(urllib.request.urlopen\\(req\\).read\\(\\).decode\\('utf-8'\\)\\)\n# search for SVLFG / Landw. Krankenkasse correspondent\nd = get\\('/api/correspondents/?name__icontains=Landw'\\)\nfor r in d['results']: print\\('corr', r['id'], r['name']\\)\nd = get\\('/api/correspondents/?name__icontains=SVLFG'\\)\nfor r in d['results']: print\\('corr', r['id'], r['name']\\)\n# tags\nd = get\\('/api/tags/?name__icontains=Vera'\\)\nfor r in d['results']: print\\('tag', r['id'], r['name']\\)\nd = get\\('/api/tags/?name__icontains=Hetti'\\)\nfor r in d['results']: print\\('tag', r['id'], r['name']\\)\n# document types\nd = get\\('/api/document_types/'\\)\nfor r in d['results']: print\\('type', r['id'], r['name']\\)\n\")",
"Bash(python -c \"\nimport urllib.request, json, sys, io\nsys.stdout = io.TextIOWrapper\\(sys.stdout.buffer, encoding='utf-8'\\)\nURL='https://paper.straso.com'\nTOKEN=open\\('scripts/.env'\\).read\\(\\).split\\('PAPERLESS_TOKEN='\\)[1].split\\(\\)[0].strip\\(\\)\nreq=urllib.request.Request\\(f'{URL}/api/documents/?tags__id__all=17&page_size=200&ordering=-created', headers={'Authorization': f'Token {TOKEN}'}\\)\ndata=json.loads\\(urllib.request.urlopen\\(req\\).read\\(\\).decode\\('utf-8'\\)\\)\nprint\\('count:', data['count']\\)\n# get correspondents map\nreq2=urllib.request.Request\\(f'{URL}/api/correspondents/?page_size=500', headers={'Authorization': f'Token {TOKEN}'}\\)\ncorr={c['id']:c['name'] for c in json.loads\\(urllib.request.urlopen\\(req2\\).read\\(\\).decode\\('utf-8'\\)\\)['results']}\nreq3=urllib.request.Request\\(f'{URL}/api/document_types/?page_size=500', headers={'Authorization': f'Token {TOKEN}'}\\)\ndtypes={c['id']:c['name'] for c in json.loads\\(urllib.request.urlopen\\(req3\\).read\\(\\).decode\\('utf-8'\\)\\)['results']}\nfor d in data['results']:\n print\\(f\\\\\"{d['id']:5} | {corr.get\\(d['correspondent'],'?'\\):30} | {dtypes.get\\(d['document_type'],'?'\\):20} | {d['created'][:10]} | {d['title']}\\\\\"\\)\n\")",
"Bash(source scripts/.env && curl -sS -H \"Authorization: Token $PAPERLESS_TOKEN\" \"$PAPERLESS_URL/api/documents/3328/\" > /tmp/doc3328.json && curl -sS -H \"Authorization: Token $PAPERLESS_TOKEN\" \"$PAPERLESS_URL/api/documents/3327/\" > /tmp/doc3327.json && echo done)",
"Bash(source scripts/.env && curl -sS -H \"Authorization: Token $PAPERLESS_TOKEN\" \"$PAPERLESS_URL/api/documents/3328/\" -o doc3328.json && curl -sS -H \"Authorization: Token $PAPERLESS_TOKEN\" \"$PAPERLESS_URL/api/documents/3327/\" -o doc3327.json && echo done)",
"Bash(curl -sS -w \"HTTP:%{http_code}\\\\n\" -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/3328/\" -o doc3328.json)",
"Bash(curl -sS -w \"HTTP:%{http_code}\\\\n\" -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/3327/\" -o doc3327.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/3344/\" -o doc3344.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/3202/\" -o doc3202.json)",
"Bash(pandoc --version)",
"Bash(pandoc -f markdown -t docx \"_vollmacht_print.md\" -o \"Vollmacht Vera Pachtvertrag Viedenz.docx\")",
"Bash(rm \"_vollmacht_print.md\")",
"Bash(pandoc -f markdown -t docx \"_nachtrag_print.md\" -o \"Nachtrag Pachtvertrag Viedenz.docx\")",
"Bash(rm \"_nachtrag_print.md\")",
"Read(//c/Users/d-chrka/**)",
"Edit(D:\\\\projects\\\\chrka\\\\brain\\\\.claude\\\\settings.json)",
"Bash(curl -sS -o /dev/null -w \"MCP root: HTTP %{http_code}\\\\n\" http://localhost:5000/)",
"Bash(curl -sS -o /dev/null -w \"MCP /mcp: HTTP %{http_code}\\\\n\" http://localhost:5000/mcp)",
"Bash(curl -sS -o /dev/null -w \"MCP /health: HTTP %{http_code}\\\\n\" http://localhost:5000/health)",
"Bash(curl -sS -X POST http://localhost:5000/mcp -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' -d '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"initialize\",\"params\":{\"protocolVersion\":\"2024-11-05\",\"capabilities\":{},\"clientInfo\":{\"name\":\"test\",\"version\":\"1.0\"}}}' -w '\\\\n---HTTP %{http_code}---\\\\n')",
"Bash(curl -sS -N -X POST http://localhost:5000/mcp -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' -H 'Mcp-Session-Id: test-session' -d '{\"jsonrpc\":\"2.0\",\"id\":2,\"method\":\"tools/list\",\"params\":{}}')",
"Bash(curl -sS -i -X POST http://localhost:5000/mcp -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' -d '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"initialize\",\"params\":{\"protocolVersion\":\"2024-11-05\",\"capabilities\":{},\"clientInfo\":{\"name\":\"test\",\"version\":\"1.0\"}}}')",
"Bash(curl -sS -D - -o /dev/null -X POST http://localhost:5000/mcp -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' -d '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"initialize\",\"params\":{\"protocolVersion\":\"2024-11-05\",\"capabilities\":{},\"clientInfo\":{\"name\":\"test\",\"version\":\"1.0\"}}}')",
"Bash(awk '{print $2}')",
"Bash(SID=$\\(curl -sS -D - -o /dev/null -X POST http://localhost:5000/mcp \\\\\n -H \"Content-Type: application/json\" \\\\\n -H \"Accept: application/json, text/event-stream\" \\\\\n -d '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"initialize\",\"params\":{\"protocolVersion\":\"2024-11-05\",\"capabilities\":{},\"clientInfo\":{\"name\":\"test\",\"version\":\"1.0\"}}}' | grep -i \"mcp-session-id\" | awk '{print $2}' | tr -d '\\\\r\\\\n'\\)\ncurl -sS -X POST http://localhost:5000/mcp \\\\\n -H \"Content-Type: application/json\" -H \"Accept: application/json, text/event-stream\" -H \"Mcp-Session-Id: $SID\" \\\\\n -d '{\"jsonrpc\":\"2.0\",\"method\":\"notifications/initialized\"}' -o /dev/null\necho \"=== Call: paperless_documents_get id=3323 ===\"\ncurl -sS -X POST http://localhost:5000/mcp \\\\\n -H \"Content-Type: application/json\" -H \"Accept: application/json, text/event-stream\" -H \"Mcp-Session-Id: $SID\" \\\\\n -d '{\"jsonrpc\":\"2.0\",\"id\":3,\"method\":\"tools/call\",\"params\":{\"name\":\"paperless_documents_get\",\"arguments\":{\"id\":3323}}}' | head -c 600)",
"Bash(node -e \"const lib = require\\('./lib/o365-calendar.js'\\); console.log\\(Object.keys\\(lib\\)\\);\")",
"Bash(node -e \"const lib = require\\('./scripts/lib/o365-calendar.js'\\); console.log\\(Object.keys\\(lib\\)\\);\")",
"Bash(node fetch-meeting-artifacts.js --o365-id \"AAMkADM1ZWEzODc3LTRjMTEtNGExYi04MGMwLWNhZTE0ZjkyNDVjOAFRAAgI3rU5kfmAAEYAAAAAMySJViLo9EWl32JswSRPzgcA4E3NSW0FuEieq6kPTtaG_AAAAAABDQAADcgZwJ68IkWODv1ql-eWvQAKCAXlnQAAEA==\" --out /tmp/artifacts.json)",
"Bash(ls /tmp/ 2>&1 | head; ls $TMPDIR 2>&1 | head; echo $TMP $TEMP)",
"Bash(node fetch-meeting-artifacts.js --o365-id \"AAMkADM1ZWEzODc3LTRjMTEtNGExYi04MGMwLWNhZTE0ZjkyNDVjOAFRAAgI3rU5kfmAAEYAAAAAMySJViLo9EWl32JswSRPzgcA4E3NSW0FuEieq6kPTtaG_AAAAAABDQAADcgZwJ68IkWODv1ql-eWvQAKCAXlnQAAEA==\" --out ./artifacts.json)",
"Bash(node -e \"const a=require\\('./artifacts.json'\\); process.stdout.write\\(a.transcript.substring\\(3000,7000\\)\\);\")",
"Bash(node -e \"const a=require\\('./artifacts.json'\\); process.stdout.write\\(a.transcript.substring\\(7000,11000\\)\\);\")",
"Bash(ping -n 2 192.168.1.1)",
"Bash(nc -zv -w 3 192.168.1.1 22)",
"Bash(nc -zv -w 3 192.168.1.1 443)",
"Bash(nc -zv -w 3 192.168.1.1 80)",
"Bash(ssh-keygen -R 192.168.1.1)",
"Bash(ssh-keygen -y -P \"\" -f ~/.ssh/chrka_ed25519)",
"Bash(ssh-keygen -y -P \"\" -f ~/.ssh/id_ed25519)",
"Bash(openssl s_client -connect kbha.straso.com:443 -servername kbha.straso.com)",
"Bash(for key in ~/.ssh/id_ed25519 ~/.ssh/chrka_ed25519 ~/.ssh/id_rsa; do echo \"=== $key ===\"; ssh -o BatchMode=yes -o ConnectTimeout=5 -o IdentitiesOnly=yes -i \"$key\" root@192.168.1.192 \"echo ok\" 2>&1 | tail -3; done)",
"Bash(sed -n '7670,7859p' \"C:\\\\Users\\\\d-chrka\\\\Downloads\\\\config-OPNsense.home.internal-20260525210428.xml\")",
"Bash(sed -n '7596,7680p' \"C:\\\\Users\\\\d-chrka\\\\Downloads\\\\config-OPNsense.home.internal-20260525210428.xml\")",
"Bash(sed -n '7440,7600p' \"C:\\\\Users\\\\d-chrka\\\\Downloads\\\\config-OPNsense.home.internal-20260525210428.xml\")",
"Bash(node fetch-meeting-artifacts.js --o365-id \"AAMkADM1ZWEzODc3LTRjMTEtNGExYi04MGMwLWNhZTE0ZjkyNDVjOAFRAAgI3rq5ut3AAEYAAAAAMySJViLo9EWl32JswSRPzgcA4E3NSW0FuEieq6kPTtaG_AAAAAABDQAADcgZwJ68IkWODv1ql-eWvQAKCAXlnQAAEA==\" --out artifacts-2026-05-26.json)",
"Bash(cd /d/projects/chrka/brain/scripts && rm -f artifacts-2026-05-26.json && ls artifacts*)",
"Bash(source scripts/.env && curl -sS -H \"Authorization: Token $PAPERLESS_TOKEN\" \"$PAPERLESS_URL/api/documents/3358/\" | python -c \"import sys,json; d=json.loads\\(sys.stdin.buffer.read\\(\\).decode\\('utf-8'\\)\\); print\\(json.dumps\\({k:v for k,v in d.items\\(\\) if k!='content'}, ensure_ascii=False, indent=2\\)\\); print\\('---CONTENT---'\\); print\\(d.get\\('content',''\\)[:5000]\\)\")",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/3358/\" -o /tmp/doc3358.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/3358/\" -o doc3358.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/correspondents/16/\" -o c16.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/correspondents/20/\" -o c20.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/tags/1/\" -o t1.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/tags/10/\" -o t10.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/3148/\" -o d3148.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/document_types/4/\")",
"Bash(curl -sS -X PATCH -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" -H \"Content-Type: application/json\" -d '{\"title\":\"Allianz MetallRente Standmitteilung 2026\",\"correspondent\":20,\"document_type\":4,\"tags\":[10]}' \"https://paper.straso.com/api/documents/3358/\" -o patched.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/?query=Gehaltsabrechnung&ordering=-created&page_size=10\" -o gehalt.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/document_types/?page_size=100\" -o dt.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/?document_type=5&ordering=-created&page_size=10\" -o entg.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/?document_type__id=5&ordering=-created&page_size=10\" -o entg.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/3312/\" -o pay.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/2932/\" -o r2932.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/?query=JobRad&page_size=5\" -o jr.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/2908/\" -o jr2908.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/2914/\" -o jr2914.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/?query=Dienstwagen&page_size=10\" -o car1.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/?query=Firmenwagen&page_size=10\" -o car2.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/?query=PKW%20%C3%9Cberlassung&page_size=10\" -o car3.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/?query=Kodiaq&page_size=15\" -o kod.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/?query=Skoda&page_size=15\" -o sk.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/2150/\" -o k2150.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/2160/\" -o k2160.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/?query=Bestellung%20Skoda&page_size=10\" -o sb.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/?query=Leasingvertrag&page_size=10\" -o lv.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/3024/\" -o rep.json)",
"Bash(node fetch-meeting-artifacts.js --o365-id \"AAMkADM1ZWEzODc3LTRjMTEtNGExYi04MGMwLWNhZTE0ZjkyNDVjOAFRAAgI3ruC5UeAAEYAAAAAMySJViLo9EWl32JswSRPzgcA4E3NSW0FuEieq6kPTtaG_AAAAAABDQAADcgZwJ68IkWODv1ql-eWvQAAj7FwfQAAEA==\" --out /tmp/artifacts.json)",
"Read(//d//**)",
"Bash(node fetch-meeting-artifacts.js --o365-id \"AAMkADM1ZWEzODc3LTRjMTEtNGExYi04MGMwLWNhZTE0ZjkyNDVjOAFRAAgI3ruC5UeAAEYAAAAAMySJViLo9EWl32JswSRPzgcA4E3NSW0FuEieq6kPTtaG_AAAAAABDQAADcgZwJ68IkWODv1ql-eWvQAAj7FwfQAAEA==\" --out landata.json)",
"Bash(source scripts/.env && curl -sS -H \"Authorization: Token $PAPERLESS_TOKEN\" \"$PAPERLESS_URL/api/documents/?query=Dienstwagen&page_size=25\" | python -c \"import sys,json; d=json.load\\(sys.stdin\\); print\\('count:',d.get\\('count'\\)\\); [print\\(f\\\\\"{r['id']} | {r.get\\('created_date',''\\)} | {r.get\\('title',''\\)}\\\\\"\\) for r in d.get\\('results',[]\\)]\")",
"Bash(source scripts/.env && echo \"URL=$PAPERLESS_URL\" && curl -sS -o response.json -w \"HTTP %{http_code}\\\\n\" -H \"Authorization: Token $PAPERLESS_TOKEN\" \"$PAPERLESS_URL/api/documents/?query=Dienstwagen&page_size=25\" && head -c 500 response.json)",
"Bash(source scripts/.env && curl -sS -L -o response.json -w \"HTTP %{http_code}\\\\n\" -H \"Authorization: Token $PAPERLESS_TOKEN\" \"$PAPERLESS_URL/api/documents/?query=Dienstwagen&page_size=25\" && python -c \"import json; d=json.load\\(open\\('response.json',encoding='utf-8'\\)\\); print\\('count:',d.get\\('count'\\)\\); [print\\(f\\\\\"{r['id']} | {r.get\\('created_date',''\\)} | {r.get\\('title',''\\)}\\\\\"\\) for r in d.get\\('results',[]\\)]\")",
"Bash(source scripts/.env && curl -sS -I -H \"Authorization: Token $PAPERLESS_TOKEN\" \"$PAPERLESS_URL/api/documents/?query=Dienstwagen\" 2>&1 | head -20)",
"Bash(source scripts/.env && BASE=\"${PAPERLESS_URL%/}\" && curl -sS -o response.json -w \"HTTP %{http_code}\\\\n\" -H \"Authorization: Token $PAPERLESS_TOKEN\" \"$BASE/api/documents/?query=Dienstwagen&page_size=25\" && python -c \"import json; d=json.load\\(open\\('response.json',encoding='utf-8'\\)\\); print\\('count:',d.get\\('count'\\)\\); [print\\(f\\\\\"{r['id']} | {r.get\\('created_date',''\\)} | {r.get\\('title',''\\)}\\\\\"\\) for r in d.get\\('results',[]\\)]\")",
"Bash(source scripts/.env && BASE=\"${PAPERLESS_URL%/}\" && for Q in \"Überlassungsvertrag\" \"Kfz-Überlassung\" \"Dienstwagenvereinbarung\" \"Firmenwagen Vertrag\" \"Kfz Überlassung\"; do echo \"=== $Q ===\"; curl -sS --get -H \"Authorization: Token $PAPERLESS_TOKEN\" --data-urlencode \"query=$Q\" --data-urlencode \"page_size=15\" \"$BASE/api/documents/\" -o resp.json; python -c \"import json; d=json.load\\(open\\('resp.json',encoding='utf-8'\\)\\); print\\('count:',d.get\\('count'\\)\\); [print\\(f\\\\\" {r['id']} | {r.get\\('created_date',''\\)} | {r.get\\('title',''\\)}\\\\\"\\) for r in d.get\\('results',[]\\)[:10]]\"; done)",
"Bash(source scripts/.env && BASE=\"${PAPERLESS_URL%/}\" && curl -sS --get -H \"Authorization: Token $PAPERLESS_TOKEN\" --data-urlencode \"name__icontains=wagen\" \"$BASE/api/tags/\" -o resp.json && python -c \"import json; d=json.load\\(open\\('resp.json',encoding='utf-8'\\)\\); print\\('count:',d.get\\('count'\\)\\); [print\\(f\\\\\" {t['id']} | {t['name']}\\\\\"\\) for t in d.get\\('results',[]\\)]\")",
"Bash(source scripts/.env && BASE=\"${PAPERLESS_URL%/}\" && for Q in \"Dienstwagen\" \"Firmenwagen\" \"Leasing\" \"Tiguan\" \"Kodiaq\" \"Skoda\" \"Volkswagen\"; do echo \"=== $Q ===\"; curl -sS --get -H \"Authorization: Token $PAPERLESS_TOKEN\" --data-urlencode \"title__icontains=$Q\" --data-urlencode \"ordering=-created\" \"$BASE/api/documents/\" -o resp.json; python -c \"import json; d=json.load\\(open\\('resp.json',encoding='utf-8'\\)\\); print\\('count:',d.get\\('count'\\)\\); [print\\(f\\\\\" {r['id']} | {r.get\\('created_date',''\\)} | {r.get\\('title',''\\)}\\\\\"\\) for r in d.get\\('results',[]\\)[:8]]\"; done)",
"Bash(source scripts/.env && BASE=\"${PAPERLESS_URL%/}\" && for ID in 2159 2150 3096 3109; do echo \"=== ID $ID ===\"; curl -sS -H \"Authorization: Token $PAPERLESS_TOKEN\" \"$BASE/api/documents/$ID/\" -o resp.json; python -c \"import json; d=json.load\\(open\\('resp.json',encoding='utf-8'\\)\\); print\\('title:', d.get\\('title'\\)\\); print\\('created:', d.get\\('created_date'\\)\\); print\\('added:', d.get\\('added'\\)\\); print\\('correspondent:', d.get\\('correspondent'\\)\\); print\\('doc_type:', d.get\\('document_type'\\)\\); print\\('tags:', d.get\\('tags'\\)\\); c=d.get\\('content',''\\) or ''; print\\('content_preview:', c[:600].replace\\('\\\\n',' | '\\)\\)\"; done)",
"Bash(source scripts/.env && BASE=\"${PAPERLESS_URL%/}\" && for ID in 3096 3109; do echo \"=== ID $ID ===\"; curl -sS -H \"Authorization: Token $PAPERLESS_TOKEN\" \"$BASE/api/documents/$ID/\" -o resp.json; python -c \"import json,re; d=json.load\\(open\\('resp.json',encoding='utf-8'\\)\\); c=d.get\\('content',''\\) or ''; [print\\(' ...', c[max\\(0,m.start\\(\\)-80\\):m.end\\(\\)+200].replace\\('\\\\n',' | '\\)\\) for m in re.finditer\\(r'\\(?i\\)dienstwagen|firmenwagen|fahrzeug|kfz|leasing|<7C>berlassung', c\\)][:6]\"; done)",
"Bash(source scripts/.env && curl -sS -H \"Authorization: Token $PAPERLESS_TOKEN\" \"$PAPERLESS_URL/api/documents/3362/\" | python -c \"import json,sys; d=json.load\\(sys.stdin\\); print\\('Title:',d.get\\('title'\\)\\); print\\('Created:',d.get\\('created'\\)\\); print\\('Date:',d.get\\('created_date'\\)\\); print\\('Type:',d.get\\('document_type'\\)\\); print\\('Corr:',d.get\\('correspondent'\\)\\); print\\('Tags:',d.get\\('tags'\\)\\); print\\('---CONTENT---'\\); print\\(d.get\\('content',''\\)\\)\")",
"Bash(source scripts/.env && curl -sS -o /tmp/doc3362.json -w \"HTTP:%{http_code}\\\\n\" -H \"Authorization: Token $PAPERLESS_TOKEN\" \"${PAPERLESS_URL}api/documents/3362/\" && wc -c /tmp/doc3362.json && head -c 500 /tmp/doc3362.json)",
"Bash(source scripts/.env && curl -sS -o doc3362.json -H \"Authorization: Token $PAPERLESS_TOKEN\" \"${PAPERLESS_URL}api/documents/3362/\" && python -c \"import json; d=json.load\\(open\\('doc3362.json',encoding='utf-8'\\)\\); print\\('Title:',d.get\\('title'\\)\\); print\\('Created:',d.get\\('created'\\)\\); print\\('CreatedDate:',d.get\\('created_date'\\)\\); print\\('Type:',d.get\\('document_type'\\)\\); print\\('Corr:',d.get\\('correspondent'\\)\\); print\\('Tags:',d.get\\('tags'\\)\\); print\\('ASN:',d.get\\('archive_serial_number'\\)\\); print\\('---CONTENT---'\\); print\\(d.get\\('content',''\\)\\)\")",
"Bash(source scripts/.env && curl -sS -o doc3363.json -H \"Authorization: Token $PAPERLESS_TOKEN\" \"${PAPERLESS_URL}api/documents/3363/\" && python -c \"\nimport json, sys, io\nsys.stdout = io.TextIOWrapper\\(sys.stdout.buffer, encoding='utf-8'\\)\nd=json.load\\(open\\('doc3363.json',encoding='utf-8'\\)\\)\nprint\\('Title:',d.get\\('title'\\)\\)\nprint\\('Created:',d.get\\('created_date'\\)\\)\nprint\\('Corr:',d.get\\('correspondent'\\),'Type:',d.get\\('document_type'\\),'Tags:',d.get\\('tags'\\)\\)\nprint\\('---CONTENT---'\\)\nprint\\(d.get\\('content',''\\)\\)\n\" && rm doc3363.json)",
"Bash(source scripts/.env && curl -sS -o doc3361.json -H \"Authorization: Token $PAPERLESS_TOKEN\" \"${PAPERLESS_URL}api/documents/3361/\" && python -c \"\nimport json, sys, io\nsys.stdout = io.TextIOWrapper\\(sys.stdout.buffer, encoding='utf-8'\\)\nd=json.load\\(open\\('doc3361.json',encoding='utf-8'\\)\\)\nprint\\('Title:',d.get\\('title'\\)\\)\nprint\\('Created:',d.get\\('created_date'\\)\\)\nprint\\('Corr:',d.get\\('correspondent'\\),'Type:',d.get\\('document_type'\\),'Tags:',d.get\\('tags'\\)\\)\nprint\\('---CONTENT---'\\)\nprint\\(d.get\\('content',''\\)\\)\n\" && rm doc3361.json)",
"Bash(source scripts/.env && for id in 3364 3365; do\n curl -sS -o \"doc${id}.json\" -H \"Authorization: Token $PAPERLESS_TOKEN\" \"${PAPERLESS_URL}api/documents/${id}/\"\ndone && python -c \"\nimport json, sys, io\nsys.stdout = io.TextIOWrapper\\(sys.stdout.buffer, encoding='utf-8'\\)\nfor id in \\(3364, 3365\\):\n d=json.load\\(open\\(f'doc{id}.json',encoding='utf-8'\\)\\)\n print\\('='*60\\)\n print\\(f'ID: {id} Title:', d.get\\('title'\\)\\)\n print\\('Created:',d.get\\('created_date'\\)\\)\n print\\('Corr:',d.get\\('correspondent'\\),'Type:',d.get\\('document_type'\\),'Tags:',d.get\\('tags'\\)\\)\n print\\('---CONTENT---'\\)\n print\\(d.get\\('content',''\\)\\)\n\" && rm doc3364.json doc3365.json)",
"Bash(source scripts/.env && curl -sS -G -H \"Authorization: Token $PAPERLESS_TOKEN\" \"${PAPERLESS_URL}api/documents/\" --data-urlencode \"query=Grundbesitzabgaben\" --data-urlencode \"page_size=50\" -o grundbesitz.json && python -c \"\nimport json, sys, io\nsys.stdout = io.TextIOWrapper\\(sys.stdout.buffer, encoding='utf-8'\\)\nd=json.load\\(open\\('grundbesitz.json',encoding='utf-8'\\)\\)\nprint\\('Count:',d.get\\('count'\\)\\)\nfor r in d.get\\('results',[]\\):\n print\\(r.get\\('id'\\), '|', r.get\\('created_date'\\), '|', r.get\\('title'\\)\\)\n\" && rm grundbesitz.json)",
"Bash(source scripts/.env && mkdir -p /tmp/gs 2>/dev/null\n# Grundsteuer B \\(Wohnhaus 338/004-3-02179.3\\): one per year\nfor id in 2842 2837 2828 2827 2824 2818 2812 2811 2802 2810 2808 2809 2807 2806 2629 3095 3201 2987 2988; do\n curl -sS -o \"gs_${id}.json\" -H \"Authorization: Token $PAPERLESS_TOKEN\" \"${PAPERLESS_URL}api/documents/${id}/\" &\ndone\nwait\n# Grundsteuer A\nfor id in 2841 2785 3094 3202; do\n curl -sS -o \"gs_${id}.json\" -H \"Authorization: Token $PAPERLESS_TOKEN\" \"${PAPERLESS_URL}api/documents/${id}/\" &\ndone\nwait\nls gs_*.json | wc -l)",
"Bash(source scripts/.env && for id in 2842 2837 2828 2827 2824 2818 2812 2811 2802 2810 2808 2809 2807 2806 2629 3095 3201 2987 2988 2841 2785 3094 3202; do\n curl -sS -o \"gs_${id}.json\" -H \"Authorization: Token $PAPERLESS_TOKEN\" \"${PAPERLESS_URL}api/documents/${id}/\"\ndone && ls gs_*.json | wc -l)",
"Bash(python -c \"\nimport json, sys, io, re, os, glob\nsys.stdout = io.TextIOWrapper\\(sys.stdout.buffer, encoding='utf-8'\\)\nfiles = sorted\\(glob.glob\\('gs_*.json'\\)\\)\nfor f in files:\n d = json.load\\(open\\(f, encoding='utf-8'\\)\\)\n id_ = d.get\\('id'\\)\n title = d.get\\('title',''\\)\n content = d.get\\('content',''\\) or ''\n # Find Grundsteuer A or B section and the year/Hebesatz/Jahressteuer\n # Look for lines containing 'Grundsteuer A' or 'Grundsteuer B'\n # Extract data table rows\n print\\('='*70\\)\n print\\(f'ID {id_} | {title}'\\)\n # Find rows: Year | 01.01-31.12 | Messbetrag | Hebesatz | Jahressteuer\n # Simpler: grep around 'Hebesatz'\n lines = content.split\\('\\\\n'\\)\n for i, line in enumerate\\(lines\\):\n if 'Hebesatz' in line or 'Grundsteuer A' in line or 'Grundsteuer B' in line or 'Abfallgeb' in line or 'Wasser' in line or 'Schmutzwasser' in line or re.search\\(r'\\\\b20\\\\d\\\\d\\\\s*\\\\|', line\\) or 'Summe' in line or 'Gesamt' in line:\n print\\(f' {line.strip\\(\\)[:200]}'\\)\n\")",
"Bash(rm gs_*.json && ls \"03 Bereiche/Finanzen/\" 2>&1)",
"Bash(source scripts/.env && curl -sS -H \"Authorization: Token $PAPERLESS_TOKEN\" \"$PAPERLESS_URL/api/documents/?query=KRAH+Abrechnung&ordering=-created&page_size=10\" | python -c \"import sys,json; d=json.load\\(sys.stdin\\); [print\\(f\\\\\"{r['id']} | {r.get\\('created',''\\)[:10]} | {r.get\\('title',''\\)}\\\\\"\\) for r in d.get\\('results',[]\\)]\")",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/?query=KRAH+Abrechnung&ordering=-created&page_size=10\" -o /tmp/paperless.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/?query=KRAH+Abrechnung&ordering=-created&page_size=10\" -o paperless_tmp.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/?query=Gehaltsabrechnung&ordering=-created&page_size=10\" -o paperless_tmp.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/?query=Gehaltsabrechnung&ordering=-created&page_size=15\" -o paperless_tmp.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/correspondents/?name__icontains=KRAH\" -o paperless_tmp.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/?correspondent__id=16&ordering=-created&page_size=20\" -o paperless_tmp.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/3359/\" -o paperless_tmp.json)",
"Bash(curl -sS -o /dev/null -w \"HTTP %{http_code}\\\\n\" http://localhost:5000/mcp)",
"Bash(curl -sS -X POST http://localhost:5000/mcp -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' -d '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"initialize\",\"params\":{\"protocolVersion\":\"2024-11-05\",\"capabilities\":{},\"clientInfo\":{\"name\":\"test\",\"version\":\"1.0\"}}}' -w \"\\\\nHTTP %{http_code}\\\\n\")",
"Bash(node fetch-meeting-artifacts.js --o365-id \"AAMkADM1ZWEzODc3LTRjMTEtNGExYi04MGMwLWNhZTE0ZjkyNDVjOAFRAAgI3rq5ut3AAEYAAAAAMySJViLo9EWl32JswSRPzgcA4E3NSW0FuEieq6kPTtaG_AAAAAABDQAADcgZwJ68IkWODv1ql-eWvQAKCAXlnQAAEA==\" --out /tmp/a41-artifacts.json)",
"Bash(node -e \"const j=require\\('/tmp/a41-artifacts.json'\\); console.log\\('meeting subject:', j.meeting?.subject\\); console.log\\('meeting start:', j.meeting?.start\\); console.log\\('has transcript:', !!j.transcript, j.transcript ? j.transcript.length+' chars' : ''\\); console.log\\('has recap:', !!j.recap\\); console.log\\('recordingUrl:', !!j.recordingUrl\\); console.log\\('warnings:', j.warnings\\);\")",
"Bash(node fetch-meeting-artifacts.js --o365-id \"AAMkADM1ZWEzODc3LTRjMTEtNGExYi04MGMwLWNhZTE0ZjkyNDVjOAFRAAgI3rq5ut3AAEYAAAAAMySJViLo9EWl32JswSRPzgcA4E3NSW0FuEieq6kPTtaG_AAAAAABDQAADcgZwJ68IkWODv1ql-eWvQAKCAXlnQAAEA==\" --out a41-artifacts.json)",
"Bash(node -e \"const j=require\\('./a41-artifacts.json'\\); console.log\\('subject:', j.meeting?.subject\\); console.log\\('start:', j.meeting?.start\\); console.log\\('seriesMasterId:', j.meeting?.seriesMasterId\\); console.log\\('onlineMeetingId:', j.meeting?.onlineMeetingId\\); console.log\\('transcript chars:', j.transcript ? j.transcript.length : 0\\); console.log\\('has recap:', !!j.recap\\); console.log\\('recordingUrl:', j.recordingUrl ? 'yes' : 'no'\\); console.log\\('warnings:', j.warnings\\);\")",
"Bash(node -e \"const j=require\\('./a41-artifacts.json'\\); console.log\\('--- RECAP ---'\\); console.log\\(JSON.stringify\\(j.recap, null, 2\\).slice\\(0, 5000\\)\\);\")",
"Bash(node -e \"const j=require\\('./a41-artifacts.json'\\); const r=j.recap.insights[0]; console.log\\('--- meetingNotes titles ---'\\); r.meetingNotes.forEach\\(\\(n,i\\)=>console.log\\(i+1, n.title\\)\\); console.log\\('--- actionItems ---'\\); console.log\\(JSON.stringify\\(r.actionItems||[], null, 2\\)\\); console.log\\('--- mentions ---'\\); console.log\\(JSON.stringify\\(r.mentions||[], null, 2\\)\\);\")",
"Bash(node -e \"const j=require\\('./a41-artifacts.json'\\); const r=j.recap.insights[0]; r.meetingNotes.forEach\\(n=>{console.log\\('## '+n.title\\); console.log\\(n.text\\); \\(n.subpoints||[]\\).forEach\\(s=>{console.log\\(' ### '+s.title\\); console.log\\(' '+s.text\\);}\\); console.log\\(''\\);}\\);\")",
"Bash(node -e \"const j=require\\('./a41-artifacts.json'\\); console.log\\(j.transcript.slice\\(0, 4000\\)\\);\")",
"Bash(node -e \"const j=require\\('./a41-artifacts.json'\\); console.log\\(j.transcript.slice\\(4000, 12000\\)\\);\")",
"Bash(node -e \"const j=require\\('./a41-artifacts.json'\\); console.log\\(j.transcript.slice\\(12000, 20000\\)\\);\")",
"Bash(node -e \"const j=require\\('./a41-artifacts.json'\\); console.log\\(j.transcript.slice\\(20000\\)\\);\")",
"Bash(node -e \"const j=require\\('./a41-artifacts.json'\\); console.log\\('start:', j.meeting.start, 'end:', j.meeting.end\\); console.log\\('attendees:', JSON.stringify\\(j.meeting.attendees, null, 2\\)\\); console.log\\('recordingUrl:', j.recordingUrl\\);\")",
"Bash(node fetch-meeting-artifacts.js --o365-id \"AAMkADM1ZWEzODc3LTRjMTEtNGExYi04MGMwLWNhZTE0ZjkyNDVjOAFRAAgI3sEDDivAAEYAAAAAMySJViLo9EWl32JswSRPzgcA4E3NSW0FuEieq6kPTtaG_AAAAAABDQAADcgZwJ68IkWODv1ql-eWvQAAj7FwfQAAEA==\" --out /tmp/artifacts.json)",
"Bash(node -e \"const j=require\\('/tmp/artifacts.json'\\);console.log\\('subject:',j.meeting?.subject\\);console.log\\('seriesMasterId:',j.meeting?.seriesMasterId\\);console.log\\('attendees:',JSON.stringify\\(j.meeting?.attendees\\)\\);console.log\\('transcript:',j.transcript?j.transcript.length+' chars':'null'\\);console.log\\('recap:',j.recap?'OBJ':'null'\\);console.log\\('recordingUrl:',j.recordingUrl?'YES':'null'\\);console.log\\('warnings:',j.warnings\\);\")",
"Bash(node fetch-meeting-artifacts.js --o365-id \"AAMkADM1ZWEzODc3LTRjMTEtNGExYi04MGMwLWNhZTE0ZjkyNDVjOAFRAAgI3sEDDivAAEYAAAAAMySJViLo9EWl32JswSRPzgcA4E3NSW0FuEieq6kPTtaG_AAAAAABDQAADcgZwJ68IkWODv1ql-eWvQAAj7FwfQAAEA==\" --out artifacts.json)",
"Bash(node -e \"const j=require\\('./artifacts.json'\\);console.log\\('subject:',j.meeting?.subject\\);console.log\\('seriesMasterId:',j.meeting?.seriesMasterId\\);console.log\\('attendees:',JSON.stringify\\(j.meeting?.attendees,null,2\\)\\);console.log\\('transcript:',j.transcript?j.transcript.length+' chars':'null'\\);console.log\\('recap:',j.recap?Object.keys\\(j.recap\\):'null'\\);console.log\\('recordingUrl:',j.recordingUrl?'YES':'null'\\);console.log\\('warnings:',j.warnings\\);\")",
"Bash(node -e \"const j=require\\('./artifacts.json'\\); console.log\\(JSON.stringify\\(j.recap,null,2\\).slice\\(0,3000\\)\\);\")",
"Bash(node -e \"const j=require\\('./artifacts.json'\\); console.log\\('insights count:',j.recap.insights.length\\); j.recap.insights.forEach\\(\\(i,k\\)=>console.log\\(k,i.createdDateTime,i.callId\\)\\);\")",
"Bash(node -e \"const j=require\\('./artifacts.json'\\); console.log\\(j.transcript.slice\\(0,500\\)\\);console.log\\('---END---'\\);console.log\\(j.transcript.slice\\(-500\\)\\);\")",
"Bash(node -e \"const j=require\\('./artifacts.json'\\); require\\('fs'\\).writeFileSync\\('transcript.txt', j.transcript\\);\")",
"Bash(node -e \"const j=require\\('./artifacts.json'\\); console.log\\(j.recordingUrl\\);\")",
"Bash(source scripts/.env && curl -sS -H \"Authorization: Token $PAPERLESS_TOKEN\" \"$PAPERLESS_URL/api/documents/3369/\" | python -c \"import sys,json; d=json.loads\\(sys.stdin.read\\(\\)\\); print\\('Title:', d.get\\('title'\\)\\); print\\('Created:', d.get\\('created'\\)\\); print\\('Correspondent:', d.get\\('correspondent'\\)\\); print\\('DocType:', d.get\\('document_type'\\)\\); print\\('Tags:', d.get\\('tags'\\)\\); print\\('---CONTENT---'\\); print\\(d.get\\('content',''\\)\\)\")",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/3369/\" -o /tmp/doc3369.json)",
"Bash(curl -sS -H \"Authorization: Token 41f79ac7b624a83272bb8fbf603776547b133b79\" \"https://paper.straso.com/api/documents/3369/\" -o doc3369.json)"
]
},
"ms365-calendar": {
"command": "bash",
"args": [
"-c",
"TOKEN=$(curl -s -X POST 'https://login.microsoftonline.com/94cf90d7-e9ff-49a1-bc3b-a5b94d3cc8ca/oauth2/v2.0/token' -H 'Content-Type: application/x-www-form-urlencoded' -d 'grant_type=client_credentials&client_id=93f9f15c-b566-4ca1-9145-c23f87c7f5c7&client_secret=Gpm8Q~5QKks3jYrbIkTM54AHmnZPC3a8RDc1Xam.&scope=https://graph.microsoft.com/.default' | python3 -c \"import sys,json; d=json.load(sys.stdin); print(d.get('access_token',''))\") && MS365_MCP_OAUTH_TOKEN=$TOKEN npx -y @softeria/ms-365-mcp-server --preset calendar --read-only"
]
},
"paperless": {
"type": "http",
"url": "http://localhost:5000/mcp"
}
}