| 504 | } |
| 505 | |
| 506 | fn sherpa_graph() -> ProvenanceGraph { |
| 507 | let goal_detail = serde_json::json!({ |
| 508 | "intent_title": "Build Hello World CLI", |
| 509 | "intent_description": "A simple CLI that prints Hello World", |
| 510 | "intent_turn_id": 3, |
| 511 | "session_id": "tiny-star-8412", |
| 512 | "phases": { |
| 513 | "orienting": { "input": 1000, "output": 200, "cost_usd": 0.006 }, |
| 514 | "executing": { "input": 5000, "output": 1000, "cost_usd": 0.05 } |
| 515 | }, |
| 516 | "turn_totals": { "input": 6000, "output": 1200, "total": 7200, "cost_usd": 0.056 }, |
| 517 | "model": "anthropic/claude-sonnet-4-6", |
| 518 | "context_pct": 3.6 |
| 519 | }); |
| 520 | |
| 521 | let commitment_detail = serde_json::json!({ |
| 522 | "todo_id": "t2", |
| 523 | "todo_content": "Create src/index.ts", |
| 524 | "priority": "high", |
| 525 | "contributor": "ai", |
| 526 | "file": "src/index.ts", |
| 527 | "start_line": 1, |
| 528 | "end_line": 12, |
| 529 | "atomic_change_hash": null, |
| 530 | "tokens": { "input": 1200, "output": 300, "cost_usd": 0.013 } |
| 531 | }); |
| 532 | |
| 533 | let execution_detail = serde_json::json!({ |
| 534 | "todo_id": "t2", |
| 535 | "command": "npm install", |
| 536 | "exit_code": 0, |
| 537 | "duration_ms": 1234, |
| 538 | "output_summary": "added 42 packages" |
| 539 | }); |
| 540 | |
| 541 | let verification_detail = serde_json::json!({ |
| 542 | "intent_turn_id": 3, |
| 543 | "intent_title": "Build Hello World CLI", |
| 544 | "outcome": "completed", |
| 545 | "summary": "CLI printed Hello World successfully", |
| 546 | "turn_cost_usd": 0.056, |
| 547 | "turn_tokens_total": 7200, |
| 548 | "learnings": { "repo": [], "workflow": [], "code": [] } |
| 549 | }); |
| 550 | |
| 551 | let nodes = vec![ |
| 552 | make_node( |
| 553 | "g-tiny-3", |
| 554 | ProvenanceNodeKind::Goal, |
| 555 | "Build Hello World CLI", |
| 556 | Some(&goal_detail.to_string()), |
| 557 | ), |
| 558 | make_node( |
| 559 | "c-tiny-3-0", |
| 560 | ProvenanceNodeKind::Commitment, |
| 561 | "wrote src/index.ts", |
| 562 | Some(&commitment_detail.to_string()), |
| 563 | ), |