{"type":"thread.started","thread_id":"id-5dfba879"}
{"type":"item.completed","item":{"id":"item_0","type":"error","message":"Code Mode is unavailable because code-mode host is disabled. Code mode will fail closed; enable `features.code_mode_host` and install `codex-code-mode-host`."}}
{"type":"turn.started"}
{"type":"item.completed","item":{"id":"item_1","type":"agent_message","text":"```python\nimport numpy as np\nfrom scipy.linalg import svdvals\nfrom threadpoolctl import threadpool_limits\n\ndef cosine(a, b):\n    return float(np.vdot(a, b) / (np.linalg.norm(a)*np.linalg.norm(b)))\n\nwith threadpool_limits(limits=4):\n    print(\"Layer 0 singular spectra (first 60, then indices 80, 120, 200, 300, 383):\")\n    for name in (\"W_q\", \"W_k\", \"W_v\", \"W_o\", \"W_fc\", \"W_proj\"):\n        s = svdvals(W[f\"{name}.0\"].astype(float))\n        print(name, np.round(s[:60], 3))\n        print(\"tail\", np.round(s[[80,120,200,300,383]], 4))\n\n    qks, ovs = [], []\n    print(\"\\nLayer 0 individual-head spectra (top 12):\")\n    for j in range(6):\n        sl = slice(64*j, 64*(j+1))\n        q = W[\"W_q.0\"][sl].astype(float)\n        k = W[\"W_k.0\"][sl].astype(float)\n        v = W[\"W_v.0\"][sl].astype(float)\n        o = W[\"W_o.0\"][:,sl].astype(float)\n        qks.append(q.T @ k / 8)\n        ovs.append(o @ v)\n        print(\"H\", j, \"QK\", np.round(svdvals(qks[-1])[:12], 4),\n              \"OV\", np.round(svdvals(ovs[-1])[:12], 4))\n    print(\"\\nLayer 0 QK Frobenius cosines\")\n    print(np.round([[cosine(a,b) for b in qks] for a in qks], 3))\n    print(\"Layer 0 OV Frobenius cosines\")\n    print(np.round([[cosine(a,b) for b in ovs] for a in ovs], 3))\n\n    print(\"\\nLayerNorm largest absolute bias coordinates:\")\n    for l in range(4):\n        for name in (\"ln1_b\", \"ln2_b\"):\n            a = W[f\"{name}.{l}\"]\n            ix = np.argsort(np.abs(a))[-8:][::-1]\n            print(f\"{name}.{l}\", list(zip(ix.tolist(), np.round(a[ix],4).tolist())))\n\n    print(\"\\nAffine QK algebra using learned LN scale and bias:\")\n    print(\"head | ||A||, top SV, stable rank, tr(A), ||key-linear coefficient||,\"\n          \" coefficient fraction in top key singular direction\")\n    for l in range(4):\n        g = W[f\"ln1_w.{l}\"].astype(float)\n        b = W[f\"ln1_b.{l}\"].astype(float)\n        for j in range(6):\n            sl = slice(64*j, 64*(j+1))\n            q = W[f\"W_q.{l}\"][sl].astype(float)\n            k = W[f\"W_k.{l}\"][sl].astype(float)\n            qg, kg = q*g, k*g\n            qg -= qg.mean(axis=1, keepdims=True)\n            kg -= kg.mean(axis=1, keepdims=True)\n            a = qg.T @ kg / 8\n            u, s, vt = np.linalg.svd(a, full_matrices=False)\n            c = (q@b) @ kg / 8\n            frac = abs(c@vt[0])/(np.linalg.norm(c)+1e-30)\n            print(f\"L{l}H{j}\", np.round([np.linalg.norm(a),s[0],\n                  (s*s).sum()/s[0]**2,np.trace(a),np.linalg.norm(c),frac],4))\n```\n"}}
{"type":"turn.completed","usage":{"input_tokens":14585,"cached_input_tokens":5248,"cache_write_input_tokens":0,"output_tokens":3064,"reasoning_output_tokens":1633}}
