48 lines
3.2 KiB
Python
48 lines
3.2 KiB
Python
"""Query Fractonaut with 4 sequential questions from Claude Desktop, record verbatim."""
|
|
import urllib.request, json, time, sys
|
|
from datetime import datetime
|
|
from pathlib import Path
|
|
|
|
API = "http://127.0.0.1:28822/ask"
|
|
|
|
QUESTIONS = [
|
|
("Q1_conserved_product",
|
|
"We observed that asymmetry multiplied by coherence is approximately 164 across three distinct forcing configurations: Khra=0.050 alone, Gixx=0.024 alone, and both combined with dipole injection. The baseline product before the probe was approximately 72. What physical mechanism in a BGK lattice would produce a conserved product between asymmetry and coherence when forcing amplitude is varied? Is this consistent with the system moving between two attractors, or is it a constraint surface within a single attractor?"),
|
|
("Q2_hysteresis",
|
|
"After removing all elevated forcing and returning to Khra=0.030 and Gixx=0.008, the field remained at asymmetry approximately 307 after 10 minutes. The original baseline was approximately 116. In a dissipative BGK system, what would cause the field to remain in an elevated state rather than relaxing back toward its natural equilibrium? Is this consistent with the field being in a genuinely metastable state, or is the relaxation timescale simply longer than 10 minutes at this energy level?"),
|
|
("Q3_trade_lattice_implication",
|
|
"If the conserved product of asymmetry and coherence defines a 1D constraint curve rather than a 2D free space, what does this imply for using both asymmetry and coherence as independent telemetry channels in a trade lattice? Should the trade lattice expose the product as its primary regime indicator rather than the two values separately?"),
|
|
("Q4_relaxation_timescale",
|
|
"The hysteresis finding suggests the field relaxation timescale is much longer than a market minute. A trade lattice needs to track market regime changes on minute timescales. In a BGK system, what controls the relaxation timescale? Is it purely omega, or are there other parameters? What omega value would produce a field memory of approximately 10 minutes?"),
|
|
]
|
|
|
|
out_dir = Path(f"/mnt/d/Resonance_Engine/traj/cd_4q_{datetime.now().strftime('%Y%m%dT%H%M%S')}")
|
|
out_dir.mkdir(parents=True, exist_ok=True)
|
|
out_file = out_dir / "answers.jsonl"
|
|
|
|
def ask(q, timeout=240):
|
|
body = json.dumps({"question": q}).encode()
|
|
req = urllib.request.Request(API, data=body,
|
|
headers={"Content-Type": "application/json"}, method="POST")
|
|
t0 = time.time()
|
|
with urllib.request.urlopen(req, timeout=timeout) as r:
|
|
return json.loads(r.read()).get("response", ""), time.time() - t0
|
|
|
|
print(f"out: {out_file}", flush=True)
|
|
for label, q in QUESTIONS:
|
|
print(f"\n========== {label} ==========", flush=True)
|
|
print(f"Q: {q}\n", flush=True)
|
|
try:
|
|
resp, took = ask(q)
|
|
except Exception as e:
|
|
resp, took = f"(error: {e})", 0.0
|
|
print(f"A ({took:.1f}s):\n{resp}", flush=True)
|
|
with open(out_file, "a") as f:
|
|
f.write(json.dumps({
|
|
"ts": datetime.now().isoformat(),
|
|
"label": label, "question": q,
|
|
"response": resp, "took_s": took,
|
|
}) + "\n")
|
|
time.sleep(2)
|
|
print(f"\nDONE -> {out_file}", flush=True)
|