-
Notifications
You must be signed in to change notification settings - Fork 12
Expand file tree
/
Copy pathtalon_demo.cast
More file actions
63 lines (63 loc) · 9.9 KB
/
Copy pathtalon_demo.cast
File metadata and controls
63 lines (63 loc) · 9.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
{"version": 2, "width": 100, "height": 32, "timestamp": 1783502416, "idle_time_limit": 5.0, "env": {"SHELL": "/bin/bash", "TERM": "xterm-256color"}}
[0.105684, "o", "\r\n\u001b[1m════════════════════════════════════════════════════════════════════════════\u001b[0m"]
[0.107274, "o", "\r\n\u001b[1m Talon — Governed Session · Anthropic orchestrates, ChatGPT executes, one boundary\u001b[0m\r\n\u001b[1m Session: sess-governed-1783502416 · enforce · session cap $0.03 · ~$0.025 real spend (varies with output)\u001b[0m\r\n\u001b[1m════════════════════════════════════════════════════════════════════════════\u001b[0m\r\n\r\n\u001b[1m──[ 1/11 ]── \u001b[32m💾 ORCHESTRATOR\u001b[0m\r\n\u001b[2m Anthropic plans, prompt-cache WRITE\u001b[0m\r\n \u001b[33mCONFIG\u001b[0m \u001b[2msystem block with cache_control: {type: ephemeral} (~2.3k-token prefix)\u001b[0m\r\n"]
[5.402334, "o", " \u001b[36mREQUEST\u001b[0m $ curl …/v1/proxy/anthropic/v1/messages {\"model\":\"claude-sonnet-5\", …} → HTTP 200\r\n \u001b[36mEVIDENCE\u001b[0m $ talon audit show gw_004cbb2f-b05\r\n"]
[5.636234, "o", " Cost: $0.012143\r\n Tokens: in=49 out=214 cache_read=0 cache_write=2343\r\n Pricing Basis: table\r\n"]
[5.636614, "o", " \u001b[32m✓ Anthropic (orchestrator) wrote the prefix to cache; Talon priced it exactly\u001b[0m"]
[5.637367, "o", "\r\n"]
[9.640434, "o", "\r\n\u001b[1m──[ 2/11 ]── \u001b[32m💾 ORCHESTRATOR\u001b[0m\r\n\u001b[2m same prefix reused, cache READ ~0.1× price\u001b[0m\r\n \u001b[33mCONFIG\u001b[0m \u001b[2midentical cache_control system block → cache HIT\u001b[0m\r\n"]
[12.809905, "o", " \u001b[36mEVIDENCE\u001b[0m $ talon audit show gw_b08afc41-dc4\r\n"]
[13.048962, "o", " Cost: $0.003517\r\n Tokens: in=158 out=156 cache_read=2343 cache_write=0\r\n \u001b[32m✓ Same tokens billed at the read rate — naïve input×rate math already wrong\u001b[0m\r\n"]
[17.051918, "o", "\r\n\u001b[1m──[ 3/11 ]── \u001b[32m✅ EXECUTOR\u001b[0m\r\n\u001b[2m ChatGPT runs the planner's plan, priced and signed\u001b[0m\r\n \u001b[33mCONFIG\u001b[0m \u001b[2mexecutor prompt = the plan Anthropic returned (real orchestration, P4)\u001b[0m\r\n"]
[19.399182, "o", " \u001b[36mEVIDENCE\u001b[0m $ talon audit verify gw_35566eb4-f42 → signature VALID · cached_tokens → cache_read\r\n \u001b[32m✓ Executor ran the planner's steps — same session, same signed trail\u001b[0m\r\n"]
[23.403216, "o", "\r\n\u001b[1m──[ 4/11 ]── \u001b[32m🛠 GOVERNED\u001b[0m\r\n\u001b[2m dangerous tool stripped before the model\u001b[0m\r\n \u001b[33mCONFIG\u001b[0m \u001b[2mcallers[session-demo].policy_overrides.forbidden_tools: [\"admin_*\"]\u001b[0m\r\n"]
[24.858683, "o", " \u001b[36mREQUEST\u001b[0m $ curl …/chat/completions tools:[admin_purge_records, search_kb] → HTTP 200\r\n"]
[24.85887, "o", " \u001b[36mEVIDENCE\u001b[0m $ talon audit show gw_e89c9087-bf0\r\n"]
[25.076356, "o", " prompt -> llm_provider:openai model=gpt-4o region=US | forwarded | tier 0 | no classified data"]
[25.076733, "o", "\r\n"]
[25.077228, "o", " \u001b[32m✓ admin_purge_records REMOVED before the model saw it\u001b[0m\r\n"]
[29.079821, "o", "\r\n\u001b[1m──[ 5/11 ]── \u001b[32m✂️ REDACTED\u001b[0m\r\n\u001b[2m email scrubbed, request still succeeds\u001b[0m\r\n \u001b[33mCONFIG\u001b[0m \u001b[2mcallers[session-demo-redact].policy_overrides.pii_action: \"redact\"\u001b[0m\r\n"]
[30.909568, "o", " \u001b[36mEVIDENCE\u001b[0m $ talon audit show gw_96de443c-5fc → PII redacted (email) · Allowed: true"]
[30.910214, "o", "\r\n \u001b[32m✓ Not every control is a wall — PII removed, the call still ran\u001b[0m"]
[30.910598, "o", "\r\n"]
[34.913586, "o", "\r\n\u001b[1m──[ 6/11 ]── \u001b[31m🔒 BLOCKED\u001b[0m\r\n\u001b[2m PII stopped before the provider\u001b[0m\r\n \u001b[33mCONFIG\u001b[0m \u001b[2mgateway.default_policy.default_pii_action: \"block\"\u001b[0m\r\n"]
[35.204578, "o", " \u001b[36mREQUEST\u001b[0m $ curl …/chat/completions {…\"IBAN DE89370400440532013000\"…} → HTTP 400\r\n \u001b[36mEVIDENCE\u001b[0m $ talon audit show gw_074d1c87-10a → Reason: PII block · Cost $0.000000 · in=0 out=0"]
[35.205558, "o", "\r\n \u001b[31m✗ POLICY_DENIED_PII_INPUT — blocked before the provider, $0 spent\u001b[0m"]
[35.205624, "o", "\r\n"]
[39.207886, "o", "\r\n\u001b[1m──[ 7/11 ]── \u001b[31m🧭 BLOCKED\u001b[0m\r\n\u001b[2m model not in caller allowlist\u001b[0m\r\n"]
[39.209186, "o", " \u001b[33mCONFIG\u001b[0m \u001b[2mcallers[session-demo-eu].policy_overrides.allowed_models: [\"gpt-4o-mini\"]\u001b[0m\r\n"]
[39.497783, "o", " \u001b[36mEVIDENCE\u001b[0m $ talon audit show gw_5dabf5c2-67b → Reason: model not in caller allowlist\r\n \u001b[31m✗ POLICY_DENIED_ROUTING — model governance, not a silent swap\u001b[0m\r\n"]
[43.509617, "o", "\r\n"]
[43.510052, "o", "\u001b[1m──[ 8/11 ]── \u001b[32m🇪🇺 ROUTED\u001b[0m"]
[43.510324, "o", "\r\n"]
[43.510528, "o", "\u001b[2m confidential data stays local — US rejected, Llama selected\u001b[0m"]
[43.510762, "o", "\r\n"]
[43.511188, "o", " \u001b[33mCONFIG\u001b[0m \u001b[2msovereignty.mode: eu_preferred (US stays in the pool, to be policy-rejected)\u001b[0m"]
[43.511423, "o", "\r\n"]
[43.511633, "o", " \u001b[33mCONFIG\u001b[0m \u001b[2magent policy tier_2: primary gpt-4o(US) · fallback_chain [llama3.2:1b → ollama/LOCAL]\u001b[0m"]
[43.511851, "o", "\r\n"]
[52.270347, "o", " \u001b[36mREQUEST\u001b[0m # ONE request via the policy-aware agent runner (NOT a /v1/proxy URL)"]
[52.270791, "o", "\r\n $ curl …/v1/chat/completions -H 'X-Talon-Session-ID: sess-governed-1783502416' → HTTP 200\r\n"]
[52.270963, "o", " \u001b[36mEVIDENCE\u001b[0m $ talon audit show req_f37fadc8"]
[52.271817, "o", "\r\n"]
[52.495713, "o", "Routing Decision (sovereignty-aware)\r\n Selected: ollama / llama3.2:1b\r\n Rejected: openai\r\n • confidential tier blocks cloud providers\r\n • confidential tier requires LOCAL provider only\r\n"]
[52.496188, "o", " \u001b[32m✓ Confidential data ran on local Llama — 0 OpenAI calls, data stayed in-region\u001b[0m"]
[52.496394, "o", "\r\n"]
[56.499929, "o", "\r\n\u001b[1m──[ 9/11 ]── \u001b[31m💶 BLOCKED\u001b[0m\r\n\u001b[2m session budget stops the next request\u001b[0m\r\n \u001b[33mCONFIG\u001b[0m \u001b[2mcallers[session-demo].policy_overrides.max_session_cost: 0.03\u001b[0m\r\n"]
[56.81275, "o", " \u001b[36mREQUEST\u001b[0m SPEND 0 governed gpt-4o requests → $0.0250 accumulated in this session\r\n"]
[56.813709, "o", " $ curl …/chat/completions {\"model\":\"gpt-4o\", …} (the next request) → HTTP 403\r\n \u001b[36mEVIDENCE\u001b[0m body: session spend 0.0248 + estimate 0.0063 exceeds limit 0.03\r\n \u001b[31m✗ session_budget_exceeded — real accumulated spend capped, next request refused\u001b[0m"]
[56.813892, "o", "\r\n"]
[60.815905, "o", "\r\n"]
[60.816697, "o", "\u001b[1m──[ 10/11 ]── \u001b[32m🧮 PROVEN\u001b[0m"]
[60.817539, "o", "\r\n\u001b[2m naïve vs cache-aware cost + tamper check\u001b[0m"]
[60.817915, "o", "\r\n"]
[61.06346, "o", " \u001b[36mEVIDENCE\u001b[0m $ talon audit export --session … --format signed-json"]
[61.063877, "o", "\r\n"]
[61.066769, "o", " cache reads 2343 · cache writes 2343\r\n Naïve (all input tokens × input rate): USD 0.029587\r\n Corrected (Talon, cache-aware): USD 0.025018 Δ USD 0.004569\r\n"]
[61.532921, "o", " \u001b[36mEVIDENCE\u001b[0m $ jq '.records[0].policy_decision.allowed |= not' … > tampered.json"]
[61.533023, "o", "\r\n $ talon audit verify --file tampered.json → Invalid records: 1 (signature INVALID)\r\n \u001b[32m✓ Cache-aware cost is the budget's basis; flipping a signed field breaks the HMAC\u001b[0m\r\n"]
[65.536853, "o", "\r\n\u001b[1m──[ 11/11 ]── \u001b[32m📜 AUDITOR\u001b[0m\r\n\u001b[2m signed session verifies · RoPA + runtime consistency check\u001b[0m\r\n \u001b[36mEVIDENCE\u001b[0m $ talon audit verify --session sess-governed-1783502416\r\n"]
[65.77697, "o", " Session sess-governed-1783502416: 9 record(s), 9 valid, 0 invalid\r\n"]
[66.073859, "o", " \u001b[36mEVIDENCE\u001b[0m $ talon compliance ropa --policy agent.talon.yaml --format html > out/…-ropa.html → 8380 bytes\r\n"]
[66.080514, "o", " \u001b[36mEVIDENCE\u001b[0m CONSISTENCY 2 destination(s) outside EU/LOCAL found in evidence (declared residency: eu)\r\n ACTION enforce eu_strict, or document the transfer mechanism (SCCs / adequacy) with your DPO\r\n \u001b[32m✓ RoPA generated — and its runtime consistency check flagged 2 non-EU flow(s) to resolve\u001b[0m\r\n"]
[70.08353, "o", "\r\n\u001b[1m════════════════════════════════════════════════════════════════════════════\u001b[0m\r\n\u001b[1m Talon — govern before the provider, prove what happened after\u001b[0m\r\n\u001b[1m════════════════════════════════════════════════════════════════════════════\u001b[0m\r\n"]