Move daily briefings to personal scratchpads, project reports under Project Status Reports parent

This commit is contained in:
2026-04-13 16:02:01 +00:00
parent 4ee0dc4c11
commit 071c4a04e3
5 changed files with 64 additions and 20 deletions
+2 -1
View File
@@ -10,7 +10,8 @@ CONFIG = {
"agent_id": "angela-daily-briefing",
"instance_id": INSTANCE_ID,
"user_id": 3,
"wiki_parent_doc_id": "65966bd6-4ef8-4b79-9b79-e4aa62b94e96",
"wiki_collection_id": "b6efa6b9-44b5-48c1-b82e-2e6efe36e3eb", # Angela's ScratchPad
"wiki_parent_doc_id": "410759a9-4a3b-4881-8ad1-3190cefa760f", # Daily Briefings in Angela's ScratchPad
"location": {
"name": "Providence",
"state": "Utah",
+6 -3
View File
@@ -9,7 +9,7 @@ with a config dict specifying location, wiki parent, and agent ID.
import sys
from datetime import datetime
from shared import (
MT, DASHBOARD_API, WIKI_API, WIKI_COLLECTION_ID, MONTH_NAMES,
MT, DASHBOARD_API, WIKI_API, WIKI_COLLECTION_ID as DEFAULT_WIKI_COLLECTION, MONTH_NAMES,
api_request, log_run, wiki_headers, find_child_doc, ensure_child_doc,
)
@@ -138,6 +138,7 @@ def compose_briefing(config, sections):
def post_to_wiki(config, markdown, date_str):
"""Post the briefing to wiki under Year/Month hierarchy."""
wiki_collection = config.get("wiki_collection_id", DEFAULT_WIKI_COLLECTION)
wiki_parent_id = config["wiki_parent_doc_id"]
now = datetime.now(MT)
year_str = str(now.year)
@@ -146,14 +147,16 @@ def post_to_wiki(config, markdown, date_str):
year_id = ensure_child_doc(
wiki_parent_id, year_str,
f"Daily briefings for {year_str}.",
collection_id=wiki_collection,
)
month_id = ensure_child_doc(
year_id, month_str,
f"Daily briefings for {month_str} {year_str}.",
collection_id=wiki_collection,
)
title = f"Daily Briefing — {date_str}"
doc_id = find_child_doc(month_id, title)
doc_id = find_child_doc(month_id, title, collection_id=wiki_collection)
if doc_id:
api_request(
@@ -169,7 +172,7 @@ def post_to_wiki(config, markdown, date_str):
data={
"title": title,
"text": markdown,
"collectionId": WIKI_COLLECTION_ID,
"collectionId": wiki_collection,
"parentDocumentId": month_id,
"publish": True,
},
+2 -1
View File
@@ -11,7 +11,8 @@ CONFIG = {
"agent_id": "eric-daily-briefing",
"instance_id": INSTANCE_ID,
"user_id": 2,
"wiki_parent_doc_id": "2a891fe8-579b-450b-a663-de93915896b7",
"wiki_collection_id": "5663a756-babe-4997-9d92-d02b53fce392", # Eric's ScratchPad
"wiki_parent_doc_id": "e61ba5be-057b-48aa-ab5e-6ecc248eb8c4", # Daily Briefings in Eric's ScratchPad
"location": {
"name": "Providence",
"state": "Utah",
+47 -10
View File
@@ -192,41 +192,78 @@ def fetch_url_content(urls_text):
def post_report_to_wiki(report_md, project_name, collection_id):
"""Post the full report to a wiki collection."""
"""Post the full report to a wiki collection under 'Project Status Reports' parent."""
if not collection_id:
return None
from shared import ensure_child_doc, find_child_doc
now = datetime.now(MT)
title = f"Project Status — {project_name}{now.strftime('%Y-%m-%d')}"
headers = wiki_headers()
# Ensure "Project Status Reports" parent doc exists in this collection
reports_parent_id = ensure_child_doc(
None, "Project Status Reports",
"Automated project status reports generated by the Project Monitor agent.",
collection_id=collection_id,
)
# ensure_child_doc with parent_id=None won't find via parentDocumentId match.
# Search manually for root-level doc in this collection.
if not reports_parent_id:
try:
search = api_request(
f"{WIKI_API}/documents.search",
data={"query": "Project Status Reports", "collectionId": collection_id},
headers=headers, method="POST",
)
for doc in search.get("data", []):
d = doc.get("document", {})
if d.get("title") == "Project Status Reports" and d.get("collectionId") == collection_id:
reports_parent_id = d["id"]
break
except Exception:
pass
if not reports_parent_id:
try:
result = api_request(
f"{WIKI_API}/documents.create",
data={"title": "Project Status Reports",
"text": "Automated project status reports.",
"collectionId": collection_id, "publish": True},
headers=headers, method="POST",
)
reports_parent_id = result["data"]["id"]
except Exception:
reports_parent_id = None
title = f"Project Status — {project_name}{now.strftime('%Y-%m-%d')}"
# Check for existing report today
try:
search = api_request(
f"{WIKI_API}/documents.search",
data={"query": title, "collectionId": collection_id},
headers=headers,
method="POST",
headers=headers, method="POST",
)
for doc in search.get("data", []):
if doc.get("document", {}).get("title") == title:
api_request(
f"{WIKI_API}/documents.update",
data={"id": doc["document"]["id"], "text": report_md, "publish": True},
headers=headers,
method="POST",
headers=headers, method="POST",
)
return doc["document"]["id"]
except Exception:
pass
# Create new
# Create new under the reports parent
try:
create_data = {"title": title, "text": report_md, "collectionId": collection_id, "publish": True}
if reports_parent_id:
create_data["parentDocumentId"] = reports_parent_id
result = api_request(
f"{WIKI_API}/documents.create",
data={"title": title, "text": report_md, "collectionId": collection_id, "publish": True},
headers=headers,
method="POST",
data=create_data, headers=headers, method="POST",
)
return result["data"]["id"]
except Exception as e:
+7 -5
View File
@@ -81,11 +81,12 @@ def wiki_headers():
return {"Authorization": f"Bearer {WIKI_TOKEN}"}
def find_child_doc(parent_id, title):
def find_child_doc(parent_id, title, collection_id=None):
"""Search for a child doc by title under a given parent."""
coll = collection_id or WIKI_COLLECTION_ID
result = api_request(
f"{WIKI_API}/documents.search",
data={"query": title, "collectionId": WIKI_COLLECTION_ID},
data={"query": title, "collectionId": coll},
headers=wiki_headers(),
method="POST",
)
@@ -96,9 +97,10 @@ def find_child_doc(parent_id, title):
return None
def ensure_child_doc(parent_id, title, body):
def ensure_child_doc(parent_id, title, body, collection_id=None):
"""Find or create a child doc under a parent. Returns doc ID."""
doc_id = find_child_doc(parent_id, title)
coll = collection_id or WIKI_COLLECTION_ID
doc_id = find_child_doc(parent_id, title, collection_id=coll)
if doc_id:
return doc_id
result = api_request(
@@ -106,7 +108,7 @@ def ensure_child_doc(parent_id, title, body):
data={
"title": title,
"text": body,
"collectionId": WIKI_COLLECTION_ID,
"collectionId": coll,
"parentDocumentId": parent_id,
"publish": True,
},