36 lines
879 B
Python
36 lines
879 B
Python
#!/usr/bin/env python3
|
|
"""Entry router for deep-research.
|
|
|
|
Reads the caller's prompt from state. If it contains a usable research
|
|
topic, stores it as `topic` and falls through to the static `next`
|
|
(plan). If the prompt is empty, routes to `ask_topic` so the user can
|
|
supply one interactively.
|
|
|
|
Routing (`_next`):
|
|
- prompt present -> (no _next; static next: plan)
|
|
- prompt empty -> ask_topic
|
|
"""
|
|
import json
|
|
import os
|
|
|
|
|
|
def load_state():
|
|
path = os.environ.get("GRAPH_STATE_FILE")
|
|
if path:
|
|
with open(path) as f:
|
|
return json.load(f)
|
|
return json.loads(os.environ.get("GRAPH_STATE", "{}"))
|
|
|
|
|
|
def main():
|
|
state = load_state()
|
|
prompt = (state.get("initial_prompt") or "").strip()
|
|
if prompt:
|
|
print(json.dumps({"topic": prompt}))
|
|
else:
|
|
print(json.dumps({"_next": "ask_topic"}))
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|