diff --git a/.trajectories/active/traj_dnxtht96w13o.json b/.trajectories/active/traj_dnxtht96w13o.json deleted file mode 100644 index 940c5c61..00000000 --- a/.trajectories/active/traj_dnxtht96w13o.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "id": "traj_dnxtht96w13o", - "version": 1, - "task": { - "title": "Make doctor tolerant of missing better-sqlite3" - }, - "status": "active", - "startedAt": "2026-02-10T12:22:01.414Z", - "agents": [], - "chapters": [], - "commits": [], - "filesChanged": [], - "projectId": "/data/repos/relay", - "tags": [], - "_trace": { - "startRef": "cc56420d6e17ed6c226b38cb0683d002ec04e990", - "endRef": "cc56420d6e17ed6c226b38cb0683d002ec04e990" - } -} \ No newline at end of file diff --git a/.trajectories/active/traj_sgvc6cssfokn.json b/.trajectories/active/traj_sgvc6cssfokn.json deleted file mode 100644 index 5e1f056e..00000000 --- a/.trajectories/active/traj_sgvc6cssfokn.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "id": "traj_sgvc6cssfokn", - "version": 1, - "task": { - "title": "Rename Rust binary to agent-relay-broker and clean up TS CLI legacy patterns" - }, - "status": "active", - "startedAt": "2026-02-20T10:51:47.859Z", - "agents": [], - "chapters": [], - "commits": [], - "filesChanged": [], - "projectId": "/Users/khaliqgant/Projects/agent-workforce/relay-cli-uses-broker", - "tags": [], - "_trace": { - "startRef": "ce11276934714f88cd0c647b037fb93e8072b91b", - "endRef": "ce11276934714f88cd0c647b037fb93e8072b91b" - } -} \ No newline at end of file diff --git a/.trajectories/completed/2026-02/traj_dnxtht96w13o.json b/.trajectories/completed/2026-02/traj_dnxtht96w13o.json new file mode 100644 index 00000000..b0e4a4ad --- /dev/null +++ b/.trajectories/completed/2026-02/traj_dnxtht96w13o.json @@ -0,0 +1,54 @@ +{ + "id": "traj_dnxtht96w13o", + "version": 1, + "task": { + "title": "Make doctor tolerant of missing better-sqlite3" + }, + "status": "completed", + "startedAt": "2026-02-10T12:22:01.414Z", + "agents": [ + { + "name": "default", + "role": "lead", + "joinedAt": "2026-02-21T16:49:05.978Z" + } + ], + "chapters": [ + { + "id": "chap_k1cmfb2wpa55", + "title": "Work", + "agentName": "default", + "startedAt": "2026-02-21T16:49:05.978Z", + "events": [ + { + "ts": 1771692545979, + "type": "decision", + "content": "Shifted auth/bootstrap and channel/event handling to RelayCast SDK-first paths: Shifted auth/bootstrap and channel/event handling to RelayCast SDK-first paths", + "raw": { + "question": "Shifted auth/bootstrap and channel/event handling to RelayCast SDK-first paths", + "chosen": "Shifted auth/bootstrap and channel/event handling to RelayCast SDK-first paths", + "alternatives": [], + "reasoning": "Eliminates direct endpoint shaping and keeps runtime behavior aligned with SDK contracts" + }, + "significance": "high" + } + ], + "endedAt": "2026-02-21T16:49:12.107Z" + } + ], + "commits": [], + "filesChanged": [], + "projectId": "/data/repos/relay", + "tags": [], + "_trace": { + "startRef": "cc56420d6e17ed6c226b38cb0683d002ec04e990", + "endRef": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6", + "traceId": "trace_5cvacavee6g9" + }, + "completedAt": "2026-02-21T16:49:12.107Z", + "retrospective": { + "summary": "Migrated remaining broker Relaycast plumbing to SDK-first auth/bootstrap and event/channel mapping", + "approach": "Standard approach", + "confidence": 0.84 + } +} \ No newline at end of file diff --git a/.trajectories/completed/2026-02/traj_dnxtht96w13o.md b/.trajectories/completed/2026-02/traj_dnxtht96w13o.md new file mode 100644 index 00000000..cd156c9f --- /dev/null +++ b/.trajectories/completed/2026-02/traj_dnxtht96w13o.md @@ -0,0 +1,31 @@ +# Trajectory: Make doctor tolerant of missing better-sqlite3 + +> **Status:** ✅ Completed +> **Confidence:** 84% +> **Started:** February 10, 2026 at 07:22 AM +> **Completed:** February 21, 2026 at 11:49 AM + +--- + +## Summary + +Migrated remaining broker Relaycast plumbing to SDK-first auth/bootstrap and event/channel mapping + +**Approach:** Standard approach + +--- + +## Key Decisions + +### Shifted auth/bootstrap and channel/event handling to RelayCast SDK-first paths +- **Chose:** Shifted auth/bootstrap and channel/event handling to RelayCast SDK-first paths +- **Reasoning:** Eliminates direct endpoint shaping and keeps runtime behavior aligned with SDK contracts + +--- + +## Chapters + +### 1. Work +*Agent: default* + +- Shifted auth/bootstrap and channel/event handling to RelayCast SDK-first paths: Shifted auth/bootstrap and channel/event handling to RelayCast SDK-first paths diff --git a/.trajectories/completed/2026-02/traj_dnxtht96w13o.trace.json b/.trajectories/completed/2026-02/traj_dnxtht96w13o.trace.json new file mode 100644 index 00000000..a3e44734 --- /dev/null +++ b/.trajectories/completed/2026-02/traj_dnxtht96w13o.trace.json @@ -0,0 +1,14839 @@ +{ + "version": 1, + "id": "trace_5cvacavee6g9", + "timestamp": "2026-02-21T16:49:12.444Z", + "trajectory": "traj_dnxtht96w13o", + "files": [ + { + "path": ".beads/issues.jsonl", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 221, + "end_line": 240, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".beads/phase6-execution-plan.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": ".claude/agents/accessibility.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 5, + "end_line": 39, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 44, + "end_line": 50, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 53, + "end_line": 59, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 64, + "end_line": 70, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 72, + "end_line": 85, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 89, + "end_line": 101, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 105, + "end_line": 111, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 133, + "end_line": 141, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 158, + "end_line": 167, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 171, + "end_line": 215, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".claude/agents/api-designer.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 5, + "end_line": 39, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 42, + "end_line": 54, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 56, + "end_line": 62, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 68, + "end_line": 74, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 87, + "end_line": 105, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".claude/agents/backend.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 5, + "end_line": 38, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 56, + "end_line": 80, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".claude/agents/cli.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 5, + "end_line": 39, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 51, + "end_line": 71, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 74, + "end_line": 80, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 92, + "end_line": 98, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 104, + "end_line": 121, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 132, + "end_line": 147, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 179, + "end_line": 202, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".claude/agents/data.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 12, + "end_line": 39, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 51, + "end_line": 70, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 73, + "end_line": 94, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 103, + "end_line": 118, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".claude/agents/database.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 5, + "end_line": 39, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 65, + "end_line": 83, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".claude/agents/debugger.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 5, + "end_line": 39, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 51, + "end_line": 75, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 77, + "end_line": 101, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".claude/agents/deployer.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 12, + "end_line": 39, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 51, + "end_line": 57, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 61, + "end_line": 67, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 71, + "end_line": 77, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 82, + "end_line": 102, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 114, + "end_line": 140, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 142, + "end_line": 148, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".claude/agents/devops.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 12, + "end_line": 39, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 50, + "end_line": 68, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 78, + "end_line": 93, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".claude/agents/fixer.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 12, + "end_line": 39, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 53, + "end_line": 73, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 76, + "end_line": 82, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 85, + "end_line": 91, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 94, + "end_line": 100, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 115, + "end_line": 147, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 150, + "end_line": 156, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 171, + "end_line": 199, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".claude/agents/frontend.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 5, + "end_line": 11, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 27, + "end_line": 39, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".claude/agents/infrastructure.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 5, + "end_line": 39, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 42, + "end_line": 72, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 74, + "end_line": 95, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".claude/agents/integrator.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 12, + "end_line": 39, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 52, + "end_line": 79, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 82, + "end_line": 88, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 94, + "end_line": 100, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 111, + "end_line": 117, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 134, + "end_line": 155, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".claude/agents/lead.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 6, + "end_line": 55, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 64, + "end_line": 124, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".claude/agents/migrator.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 12, + "end_line": 39, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 51, + "end_line": 71, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 74, + "end_line": 80, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 84, + "end_line": 90, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 104, + "end_line": 124, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".claude/agents/mobile.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 12, + "end_line": 39, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 51, + "end_line": 71, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 74, + "end_line": 80, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 87, + "end_line": 96, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 105, + "end_line": 120, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 129, + "end_line": 138, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".claude/agents/monitor.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 12, + "end_line": 38, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 50, + "end_line": 77, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 80, + "end_line": 86, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 90, + "end_line": 96, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 113, + "end_line": 146, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".claude/agents/performance.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 5, + "end_line": 39, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 52, + "end_line": 77, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 79, + "end_line": 98, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 100, + "end_line": 124, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".claude/agents/prototyper.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 12, + "end_line": 39, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 52, + "end_line": 72, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 75, + "end_line": 81, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 85, + "end_line": 91, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 95, + "end_line": 101, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 107, + "end_line": 113, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 116, + "end_line": 122, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 125, + "end_line": 177, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 179, + "end_line": 185, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".claude/agents/qa.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 5, + "end_line": 39, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 45, + "end_line": 74, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 84, + "end_line": 96, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 106, + "end_line": 150, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 153, + "end_line": 185, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".claude/agents/refactorer.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 5, + "end_line": 55, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 59, + "end_line": 85, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 95, + "end_line": 119, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".claude/agents/roles/planner-strategy.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 5, + "end_line": 32, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 66, + "end_line": 72, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 80, + "end_line": 86, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 97, + "end_line": 106, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".claude/agents/roles/reviewer-criteria.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 5, + "end_line": 32, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 35, + "end_line": 41, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 45, + "end_line": 51, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 53, + "end_line": 59, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 61, + "end_line": 67, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 69, + "end_line": 75, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 77, + "end_line": 83, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 87, + "end_line": 93, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 104, + "end_line": 117, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 119, + "end_line": 135, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 157, + "end_line": 206, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 210, + "end_line": 213, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".claude/agents/roles/worker-focus.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 5, + "end_line": 32, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 46, + "end_line": 59, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 83, + "end_line": 89, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 91, + "end_line": 97, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 105, + "end_line": 111, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".claude/agents/security.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 5, + "end_line": 39, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 42, + "end_line": 111, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 136, + "end_line": 168, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 176, + "end_line": 182, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 184, + "end_line": 200, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".claude/agents/sysadmin.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 12, + "end_line": 39, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 51, + "end_line": 78, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 81, + "end_line": 87, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 92, + "end_line": 98, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 104, + "end_line": 110, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 125, + "end_line": 151, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 156, + "end_line": 162, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".claude/agents/tester.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 5, + "end_line": 32, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 34, + "end_line": 40, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 43, + "end_line": 63, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 65, + "end_line": 76, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 92, + "end_line": 110, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 117, + "end_line": 138, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".claude/agents/validator.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 5, + "end_line": 39, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 42, + "end_line": 57, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 59, + "end_line": 93, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 109, + "end_line": 115, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 128, + "end_line": 134, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 149, + "end_line": 157, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 163, + "end_line": 172, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 178, + "end_line": 214, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 218, + "end_line": 224, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 229, + "end_line": 235, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".claude/rules/bridge.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": ".claude/rules/cli-modules.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 64, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".claude/rules/daemon.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": ".claude/rules/hooks.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 21, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 27, + "end_line": 32, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".claude/rules/protocol-schema-sync.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": ".claude/rules/protocol.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": ".claude/rules/python-sdk.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 52, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".claude/rules/rust.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 60, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".claude/rules/sdk-daemon-parity.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": ".claude/rules/sdk.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 59, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".claude/rules/testing.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 76, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".claude/rules/wrapper-inheritance.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": ".claude/rules/wrapper.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": ".claude/skills/adding-swarm-patterns/SKILL.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 174, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".claude/skills/choosing-swarm-patterns/SKILL.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 338, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".claude/skills/deploying-to-staging-environment/SKILL.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 376, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".claude/skills/using-agent-relay/SKILL.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 120, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 127, + "end_line": 143, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".claude/skills/writing-agent-relay-workflows/SKILL.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 220, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".cursor/mcp.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 14, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".eslintrc.cjs", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 27, + "end_line": 46, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".github/CODEOWNERS", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 3, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".github/ISSUE_TEMPLATE/bug_report.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 19, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".github/ISSUE_TEMPLATE/feature_request.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 11, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".github/pull_request_template.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 12, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".github/workflows/build-broker-binary.yml", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 103, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".github/workflows/codegen-models.yml", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 57, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".github/workflows/github-stars-posthog.yml", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 78, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".github/workflows/large-files.yml", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 19, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".github/workflows/package-validation.yml", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 60, + "end_line": 73, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 82, + "end_line": 92, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 108, + "end_line": 114, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".github/workflows/publish.yml", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 10, + "end_line": 16, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 73, + "end_line": 79, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 127, + "end_line": 190, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 320, + "end_line": 326, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 416, + "end_line": 428, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 439, + "end_line": 450, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 493, + "end_line": 498, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 502, + "end_line": 508, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 906, + "end_line": 914, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 928, + "end_line": 934, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 936, + "end_line": 942, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 955, + "end_line": 965, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 997, + "end_line": 1009, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 1068, + "end_line": 1251, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 1254, + "end_line": 1260, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 1307, + "end_line": 1319, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 1386, + "end_line": 1392, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".github/workflows/rust-ci.yml", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 93, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".github/workflows/rust-fmt-fix.yml", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 53, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".github/workflows/storage-testing.yml", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": ".github/workflows/update-cli-versions.yml", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 84, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".gitignore", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 14, + "end_line": 21, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 43, + "end_line": 51, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 58, + "end_line": 77, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".husky/pre-commit", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 1, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".mcp.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 14, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".prettierignore", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 6, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".prettierrc", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 7, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".syncpackrc.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 10, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/active/traj_1771504511924_803e907a.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 70, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/active/traj_1771505959691_cfe14596.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 65, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/active/traj_1771506823242_f7462087.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 66, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/active/traj_1771512989497_77725cc4.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 50, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/active/traj_1771514296907_f54511b3.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 50, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/active/traj_1771528576300_f599cb22.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 50, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/active/traj_dnxtht96w13o.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 19, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/active/traj_sgvc6cssfokn.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 19, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-01/TRAIL_GIT_AUTH_FIX.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_2hacryut6cnm.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 65, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_2hacryut6cnm.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 36, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_4blqophly998.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 65, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_4blqophly998.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 36, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_5mb7h27aareq.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 53, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_5mb7h27aareq.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 31, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_5ywc1iyepar1.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 77, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_5ywc1iyepar1.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 41, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_6cf997vtvlvc.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 54, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_6cf997vtvlvc.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 31, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_6cf997vtvlvc.trace.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 72, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_8ccax0ehyq47.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 53, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_8ccax0ehyq47.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 31, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_cg4ihv6ph68u.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 225, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_cg4ihv6ph68u.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 21, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_cg4ihv6ph68u.trace.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 3588, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_ci9y9vd7tzxq.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 54, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_ci9y9vd7tzxq.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 31, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_ci9y9vd7tzxq.trace.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 336, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_cwv6xnxwysms.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 130, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_cwv6xnxwysms.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 62, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_cwv6xnxwysms.trace.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 122, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_dasagzf65w2w.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 77, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_dasagzf65w2w.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 41, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_dc3uiqhsxjnd.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 65, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_dc3uiqhsxjnd.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 36, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_fglv6fwrbagr.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 65, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_fglv6fwrbagr.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 36, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_fok5l19hoqoy.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 54, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_fok5l19hoqoy.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 23, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_hakny9al4dsm.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 65, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_hakny9al4dsm.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 36, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_hy0xrwqauiye.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 53, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_hy0xrwqauiye.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 31, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_jm1njxs1o0th.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 53, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_jm1njxs1o0th.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 31, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_ld93dbo097nv.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 53, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_ld93dbo097nv.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 31, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_mn7t1gi1yl62.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 53, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_mn7t1gi1yl62.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 31, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_oepivdurgun8.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 65, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_oepivdurgun8.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 36, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_qeucn3159q6x.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 53, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_qeucn3159q6x.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 31, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_rwffmnpl2qn3.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 53, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_rwffmnpl2qn3.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 31, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_u3ia2nsb2tsc.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 53, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_u3ia2nsb2tsc.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 31, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_uyk94w5k2m6r.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 25, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_uyk94w5k2m6r.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 14, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_v2ibbtt7kmsl.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 25, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_v2ibbtt7kmsl.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 14, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_w852m8eq19mb.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 53, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_w852m8eq19mb.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 31, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_xxcra8ywee78.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 53, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_xxcra8ywee78.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 31, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_xxlsceaai3ga.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 65, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_xxlsceaai3ga.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 36, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_yo9tijj0e8sn.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 53, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/2026-02/traj_yo9tijj0e8sn.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 31, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/completed/traj_1771502793702_c0b4a5e6.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 48, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": ".trajectories/index.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 6, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 253, + "end_line": 397, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "AGENTS.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 5, + "end_line": 21, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 30, + "end_line": 35, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 59, + "end_line": 65, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 67, + "end_line": 79, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 87, + "end_line": 93, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 102, + "end_line": 114, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 122, + "end_line": 128, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 139, + "end_line": 145, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 147, + "end_line": 217, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "ARCHITECTURE.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 5, + "end_line": 14, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 22, + "end_line": 32, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 35, + "end_line": 41, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 43, + "end_line": 55, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 61, + "end_line": 82, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 85, + "end_line": 140, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 144, + "end_line": 200, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 203, + "end_line": 371, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 374, + "end_line": 443, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 454, + "end_line": 478, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 482, + "end_line": 648, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 651, + "end_line": 706, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 709, + "end_line": 746, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "CHANGELOG.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 15, + "end_line": 44, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "Cargo.lock", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 3254, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "Cargo.toml", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 45, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "README.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 9, + "end_line": 281, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "TELEMETRY.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 91, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "TESTING.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 29, + "end_line": 83, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 110, + "end_line": 116, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 131, + "end_line": 147, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 149, + "end_line": 157, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 165, + "end_line": 171, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 176, + "end_line": 182, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 191, + "end_line": 197, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 275, + "end_line": 284, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "agent-relay-2.3.14.tgz", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "docs/DELIVERY-ACK-PROPOSAL.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 420, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/api/openapi.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 27, + "end_line": 33, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 131, + "end_line": 137, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 161, + "end_line": 167, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 212, + "end_line": 222, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 251, + "end_line": 264, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 292, + "end_line": 301, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 308, + "end_line": 314, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 322, + "end_line": 328, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 372, + "end_line": 378, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 391, + "end_line": 401, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 410, + "end_line": 416, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 442, + "end_line": 457, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 464, + "end_line": 470, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 487, + "end_line": 493, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 510, + "end_line": 521, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 532, + "end_line": 538, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 553, + "end_line": 559, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 592, + "end_line": 598, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 604, + "end_line": 625, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 630, + "end_line": 636, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 648, + "end_line": 658, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 684, + "end_line": 697, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 706, + "end_line": 712, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 722, + "end_line": 731, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 741, + "end_line": 753, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 779, + "end_line": 785, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 792, + "end_line": 798, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 826, + "end_line": 835, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 866, + "end_line": 872, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 887, + "end_line": 893, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 933, + "end_line": 942, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 956, + "end_line": 962, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 966, + "end_line": 976, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/architecture/storage.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 3, + "end_line": 17, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 31, + "end_line": 59, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 61, + "end_line": 73, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/competitive/MURMUR.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 13, + "end_line": 32, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 35, + "end_line": 41, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 43, + "end_line": 49, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 67, + "end_line": 73, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 83, + "end_line": 89, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 117, + "end_line": 123, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 126, + "end_line": 143, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 146, + "end_line": 159, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 165, + "end_line": 181, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 183, + "end_line": 196, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 202, + "end_line": 215, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 219, + "end_line": 231, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 233, + "end_line": 244, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 252, + "end_line": 274, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 279, + "end_line": 303, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 311, + "end_line": 323, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 325, + "end_line": 331, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 333, + "end_line": 339, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 346, + "end_line": 352, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 354, + "end_line": 360, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 363, + "end_line": 369, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 372, + "end_line": 378, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 384, + "end_line": 390, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 393, + "end_line": 399, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 401, + "end_line": 413, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 421, + "end_line": 434, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 440, + "end_line": 453, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 456, + "end_line": 462, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 464, + "end_line": 488, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 511, + "end_line": 517, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 540, + "end_line": 560, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 568, + "end_line": 579, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 584, + "end_line": 590, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 599, + "end_line": 605, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 619, + "end_line": 627, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 644, + "end_line": 658, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 660, + "end_line": 666, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 670, + "end_line": 676, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 690, + "end_line": 696, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 712, + "end_line": 731, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 747, + "end_line": 753, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 756, + "end_line": 762, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 764, + "end_line": 777, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 785, + "end_line": 791, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 796, + "end_line": 811, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 828, + "end_line": 835, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 844, + "end_line": 850, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 870, + "end_line": 883, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 885, + "end_line": 918, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 928, + "end_line": 934, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 936, + "end_line": 942, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 959, + "end_line": 965, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 1003, + "end_line": 1009, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 1017, + "end_line": 1023, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 1056, + "end_line": 1068, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 1099, + "end_line": 1105, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 1107, + "end_line": 1113, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 1117, + "end_line": 1137, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 1141, + "end_line": 1147, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 1150, + "end_line": 1162, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/concepts.mdx", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 6, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 38, + "end_line": 44, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 83, + "end_line": 89, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 94, + "end_line": 100, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 105, + "end_line": 111, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 120, + "end_line": 132, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 150, + "end_line": 158, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 165, + "end_line": 171, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 179, + "end_line": 211, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 241, + "end_line": 247, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 252, + "end_line": 258, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 266, + "end_line": 276, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 327, + "end_line": 354, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/features/bridging.mdx", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 11, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 27, + "end_line": 34, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 39, + "end_line": 45, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 47, + "end_line": 61, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 74, + "end_line": 80, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 89, + "end_line": 130, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 152, + "end_line": 163, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 233, + "end_line": 248, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 258, + "end_line": 264, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 268, + "end_line": 271, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/features/cloud.mdx", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 13, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 50, + "end_line": 56, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 66, + "end_line": 75, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 91, + "end_line": 97, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 126, + "end_line": 132, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 141, + "end_line": 152, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 161, + "end_line": 184, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 193, + "end_line": 204, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 302, + "end_line": 311, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 319, + "end_line": 350, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/features/dashboard.mdx", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 6, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 9, + "end_line": 21, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 123, + "end_line": 129, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 137, + "end_line": 143, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 206, + "end_line": 215, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 225, + "end_line": 231, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 235, + "end_line": 256, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/features/messaging.mdx", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 72, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 77, + "end_line": 102, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 124, + "end_line": 146, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 153, + "end_line": 166, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 180, + "end_line": 212, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/features/shadows.mdx", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 6, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 28, + "end_line": 34, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 37, + "end_line": 57, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 66, + "end_line": 74, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 87, + "end_line": 93, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 195, + "end_line": 201, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 224, + "end_line": 241, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 294, + "end_line": 308, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/features/spawning.mdx", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 6, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 9, + "end_line": 95, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 97, + "end_line": 103, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 105, + "end_line": 120, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 122, + "end_line": 133, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 136, + "end_line": 142, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 178, + "end_line": 189, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 231, + "end_line": 242, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 286, + "end_line": 300, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/guide/agent-setup.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 3, + "end_line": 9, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 51, + "end_line": 68, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 74, + "end_line": 113, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 118, + "end_line": 128, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 133, + "end_line": 139, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 143, + "end_line": 174, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 179, + "end_line": 196, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 208, + "end_line": 214, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 223, + "end_line": 253, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 259, + "end_line": 267, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 279, + "end_line": 321, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 325, + "end_line": 338, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 351, + "end_line": 360, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 364, + "end_line": 370, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 375, + "end_line": 381, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 391, + "end_line": 415, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 422, + "end_line": 428, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 431, + "end_line": 440, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 453, + "end_line": 465, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 481, + "end_line": 487, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/guides/custom-agents.mdx", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 43, + "end_line": 60, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 63, + "end_line": 95, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 101, + "end_line": 110, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 151, + "end_line": 157, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 182, + "end_line": 213, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 235, + "end_line": 246, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 260, + "end_line": 277, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 292, + "end_line": 306, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 314, + "end_line": 340, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 395, + "end_line": 403, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 406, + "end_line": 436, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 475, + "end_line": 481, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/guides/editor-integration.mdx", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 7, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 13, + "end_line": 19, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 32, + "end_line": 38, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 45, + "end_line": 66, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 77, + "end_line": 83, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 93, + "end_line": 101, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 134, + "end_line": 140, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 146, + "end_line": 157, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 220, + "end_line": 229, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/guides/electron-integration.mdx", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 10, + "end_line": 16, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 22, + "end_line": 28, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 186, + "end_line": 326, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 363, + "end_line": 392, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 423, + "end_line": 429, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 457, + "end_line": 463, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 541, + "end_line": 549, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 557, + "end_line": 563, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 571, + "end_line": 580, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 586, + "end_line": 594, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 598, + "end_line": 605, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 758, + "end_line": 770, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 806, + "end_line": 812, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 867, + "end_line": 873, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 951, + "end_line": 957, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 959, + "end_line": 965, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 985, + "end_line": 991, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 1007, + "end_line": 1014, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 1121, + "end_line": 1127, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 1151, + "end_line": 1157, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/guides/multi-project.mdx", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 13, + "end_line": 21, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 23, + "end_line": 54, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 70, + "end_line": 80, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 85, + "end_line": 91, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 99, + "end_line": 105, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 109, + "end_line": 165, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 185, + "end_line": 191, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 197, + "end_line": 210, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 213, + "end_line": 274, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 278, + "end_line": 284, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/guides/session-continuity.mdx", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 11, + "end_line": 20, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 45, + "end_line": 63, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 66, + "end_line": 72, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 82, + "end_line": 104, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 108, + "end_line": 116, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 125, + "end_line": 145, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 170, + "end_line": 181, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 184, + "end_line": 192, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 194, + "end_line": 205, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 207, + "end_line": 213, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 221, + "end_line": 252, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 269, + "end_line": 277, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 281, + "end_line": 287, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 312, + "end_line": 319, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 325, + "end_line": 331, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 333, + "end_line": 339, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/guides/worker-orchestration.mdx", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 12, + "end_line": 36, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 43, + "end_line": 79, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 83, + "end_line": 144, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 147, + "end_line": 159, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 179, + "end_line": 185, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 187, + "end_line": 198, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 220, + "end_line": 238, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 261, + "end_line": 273, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 277, + "end_line": 289, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 303, + "end_line": 352, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 361, + "end_line": 375, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 378, + "end_line": 392, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 400, + "end_line": 414, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 422, + "end_line": 428, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 444, + "end_line": 450, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 452, + "end_line": 474, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/introduction.mdx", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 6, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 30, + "end_line": 40, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 88, + "end_line": 108, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 133, + "end_line": 143, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/markdown/sdk.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 386, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/markdown/workflows.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 293, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/mint.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 37, + "end_line": 63, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/quickstart.mdx", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 6, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 8, + "end_line": 14, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 38, + "end_line": 45, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 47, + "end_line": 56, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 72, + "end_line": 78, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 86, + "end_line": 92, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 96, + "end_line": 108, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 112, + "end_line": 138, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 151, + "end_line": 173, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 177, + "end_line": 185, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 194, + "end_line": 210, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 217, + "end_line": 223, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 234, + "end_line": 240, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/reference/api.mdx", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 5, + "end_line": 428, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/reference/cli.mdx", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 5, + "end_line": 11, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 15, + "end_line": 33, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 35, + "end_line": 41, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 43, + "end_line": 56, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 72, + "end_line": 82, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 85, + "end_line": 91, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 106, + "end_line": 112, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 129, + "end_line": 137, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 140, + "end_line": 168, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 197, + "end_line": 207, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 229, + "end_line": 238, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 256, + "end_line": 270, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 291, + "end_line": 298, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 342, + "end_line": 357, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 393, + "end_line": 405, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 434, + "end_line": 440, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 471, + "end_line": 478, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 491, + "end_line": 527, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/reference/configuration.mdx", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 22, + "end_line": 45, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 57, + "end_line": 69, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 97, + "end_line": 103, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 140, + "end_line": 153, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 191, + "end_line": 213, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 280, + "end_line": 316, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 320, + "end_line": 352, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 356, + "end_line": 385, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 387, + "end_line": 399, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 406, + "end_line": 417, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/reference/protocol.mdx", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 5, + "end_line": 11, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 27, + "end_line": 36, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 47, + "end_line": 56, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 60, + "end_line": 73, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 94, + "end_line": 158, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 161, + "end_line": 167, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 175, + "end_line": 197, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 221, + "end_line": 231, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 257, + "end_line": 266, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 272, + "end_line": 288, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 313, + "end_line": 321, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 344, + "end_line": 356, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 358, + "end_line": 367, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 369, + "end_line": 380, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 385, + "end_line": 394, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 396, + "end_line": 416, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 421, + "end_line": 440, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 442, + "end_line": 464, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 467, + "end_line": 478, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 505, + "end_line": 511, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 528, + "end_line": 534, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/reference/sdk.mdx", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 15, + "end_line": 23, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 30, + "end_line": 38, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 81, + "end_line": 99, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 108, + "end_line": 114, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 169, + "end_line": 191, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 211, + "end_line": 217, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 244, + "end_line": 257, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 358, + "end_line": 364, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 370, + "end_line": 402, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 427, + "end_line": 433, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 451, + "end_line": 466, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 558, + "end_line": 589, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 622, + "end_line": 636, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 733, + "end_line": 739, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 747, + "end_line": 756, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 795, + "end_line": 801, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 811, + "end_line": 817, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 847, + "end_line": 853, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 866, + "end_line": 873, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 911, + "end_line": 917, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 1017, + "end_line": 1022, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/troubleshooting/storage.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 3, + "end_line": 14, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 17, + "end_line": 44, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 54, + "end_line": 85, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 93, + "end_line": 166, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 169, + "end_line": 175, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 190, + "end_line": 196, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 199, + "end_line": 217, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/workflows/README.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 73, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/workflows/cloud-execution.mdx", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 328, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/workflows/overview.mdx", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 123, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/workflows/patterns/cascade.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 96, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/workflows/patterns/competitive.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 139, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/workflows/patterns/consensus.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 82, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/workflows/patterns/dag.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 62, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/workflows/patterns/debate.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 81, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/workflows/patterns/fan-out.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 68, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/workflows/patterns/handoff.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 74, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/workflows/patterns/hierarchical.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 84, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/workflows/patterns/hub-spoke.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 74, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/workflows/patterns/mesh.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 71, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/workflows/patterns/pipeline.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 70, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/workflows/python-sdk.mdx", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 426, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/workflows/templates/bug-fix.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 60, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/workflows/templates/code-review.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 67, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/workflows/templates/competitive.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 68, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/workflows/templates/documentation.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 59, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/workflows/templates/feature-dev.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 95, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/workflows/templates/refactor.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 60, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/workflows/templates/security-audit.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 62, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/workflows/typescript-sdk.mdx", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 398, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "docs/workflows/yaml-reference.mdx", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 411, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "examples/.env.example", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 37, + "end_line": 42, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "examples/basic-chat/README.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 23, + "end_line": 29, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 33, + "end_line": 62, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "examples/basic-chat/setup.sh", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 6, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 12, + "end_line": 21, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 24, + "end_line": 39, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 48, + "end_line": 63, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "examples/collaborative-task/README.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 5, + "end_line": 11, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 13, + "end_line": 48, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 62, + "end_line": 85, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "install.sh", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 152, + "end_line": 184, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 629, + "end_line": 637, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 768, + "end_line": 775, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "knip.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 6, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "openapi.yaml", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 455, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "package-lock.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 20, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 22, + "end_line": 36, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 44, + "end_line": 55, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 65, + "end_line": 78, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 91, + "end_line": 104, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 107, + "end_line": 116, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 127, + "end_line": 132, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 164, + "end_line": 169, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 250, + "end_line": 256, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 264, + "end_line": 270, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 275, + "end_line": 281, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 400, + "end_line": 439, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 1184, + "end_line": 1189, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 1263, + "end_line": 1283, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 1318, + "end_line": 1327, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 1332, + "end_line": 1341, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 1346, + "end_line": 1355, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 1360, + "end_line": 1369, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 1374, + "end_line": 1383, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 1388, + "end_line": 1397, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 1402, + "end_line": 1411, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 1416, + "end_line": 1425, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 1430, + "end_line": 1439, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 1444, + "end_line": 1453, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 1458, + "end_line": 1467, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 1472, + "end_line": 1481, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 1486, + "end_line": 1495, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 1500, + "end_line": 1509, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 1514, + "end_line": 1523, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 1528, + "end_line": 1568, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 1573, + "end_line": 1582, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 1587, + "end_line": 1596, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 1601, + "end_line": 3037, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 3040, + "end_line": 3444, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 3447, + "end_line": 3469, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 3472, + "end_line": 3487, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 3490, + "end_line": 4223, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 4225, + "end_line": 4864, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 4867, + "end_line": 4882, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 4885, + "end_line": 4898, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 4901, + "end_line": 5423, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 5430, + "end_line": 7367, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 7374, + "end_line": 8270, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 8272, + "end_line": 8277, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 8289, + "end_line": 8666, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 8669, + "end_line": 8677, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 8688, + "end_line": 8694, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 8701, + "end_line": 8707, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 8716, + "end_line": 8722, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 8731, + "end_line": 8737, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 8744, + "end_line": 8750, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 8759, + "end_line": 8772, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 8779, + "end_line": 8785, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 8789, + "end_line": 8795, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 8799, + "end_line": 8805, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 8822, + "end_line": 8828, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 8895, + "end_line": 8901, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 8922, + "end_line": 8960, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 8971, + "end_line": 8977, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 8984, + "end_line": 8990, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 8999, + "end_line": 9005, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 9014, + "end_line": 9020, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 9027, + "end_line": 9033, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 9042, + "end_line": 9055, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 9062, + "end_line": 9068, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 9072, + "end_line": 9078, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 9082, + "end_line": 9088, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 9105, + "end_line": 9111, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 9178, + "end_line": 9267, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 9278, + "end_line": 9284, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 9291, + "end_line": 9297, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 9306, + "end_line": 9312, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 9321, + "end_line": 9327, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 9334, + "end_line": 9340, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 9349, + "end_line": 9362, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 9369, + "end_line": 9375, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 9379, + "end_line": 9385, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 9389, + "end_line": 9395, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 9412, + "end_line": 9418, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 9485, + "end_line": 9491, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 9512, + "end_line": 9560, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 9571, + "end_line": 9577, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 9584, + "end_line": 9590, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 9599, + "end_line": 9605, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 9614, + "end_line": 9620, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 9627, + "end_line": 9633, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 9642, + "end_line": 9655, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 9662, + "end_line": 9668, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 9672, + "end_line": 9678, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 9682, + "end_line": 9688, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 9705, + "end_line": 9711, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 9778, + "end_line": 9784, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 9805, + "end_line": 9823, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 9834, + "end_line": 9840, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 9847, + "end_line": 9853, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 9862, + "end_line": 9868, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 9877, + "end_line": 9883, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 9890, + "end_line": 9896, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 9905, + "end_line": 9918, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 9925, + "end_line": 9931, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 9935, + "end_line": 9941, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 9945, + "end_line": 9951, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 9968, + "end_line": 9974, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 10041, + "end_line": 10047, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 10068, + "end_line": 10163, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 10174, + "end_line": 10180, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 10187, + "end_line": 10193, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 10202, + "end_line": 10208, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 10217, + "end_line": 10223, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 10230, + "end_line": 10236, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 10245, + "end_line": 10258, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 10265, + "end_line": 10271, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 10275, + "end_line": 10281, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 10285, + "end_line": 10291, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 10308, + "end_line": 10314, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 10381, + "end_line": 10387, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 10408, + "end_line": 10418, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 10420, + "end_line": 10426, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 10437, + "end_line": 10443, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 10450, + "end_line": 10456, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 10465, + "end_line": 10471, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 10480, + "end_line": 10486, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 10493, + "end_line": 10499, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 10508, + "end_line": 10521, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 10528, + "end_line": 10534, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 10538, + "end_line": 10544, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 10548, + "end_line": 10554, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 10571, + "end_line": 10577, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 10644, + "end_line": 10650, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 10671, + "end_line": 10681, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 10683, + "end_line": 10689, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 10700, + "end_line": 10706, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 10713, + "end_line": 10719, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 10728, + "end_line": 10734, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 10743, + "end_line": 10749, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 10756, + "end_line": 10762, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 10771, + "end_line": 10784, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 10791, + "end_line": 10797, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 10801, + "end_line": 10807, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 10811, + "end_line": 10817, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 10834, + "end_line": 10840, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 10907, + "end_line": 10913, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 10934, + "end_line": 10953, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 10964, + "end_line": 10970, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 10977, + "end_line": 10983, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 10992, + "end_line": 10998, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 11007, + "end_line": 11013, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 11020, + "end_line": 11026, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 11035, + "end_line": 11048, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 11055, + "end_line": 11061, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 11065, + "end_line": 11071, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 11075, + "end_line": 11081, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 11098, + "end_line": 11104, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 11170, + "end_line": 11219, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "package.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 6, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 23, + "end_line": 84, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 86, + "end_line": 151, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 168, + "end_line": 182, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 190, + "end_line": 196, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 208, + "end_line": 221, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 228, + "end_line": 239, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/acp-bridge/package.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 6, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 46, + "end_line": 52, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/acp-bridge/src/acp-agent.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 6, + "end_line": 12, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 62, + "end_line": 68, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 73, + "end_line": 93, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 119, + "end_line": 219, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 415, + "end_line": 421, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 469, + "end_line": 505, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 732, + "end_line": 738, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 740, + "end_line": 759, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 770, + "end_line": 791, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 795, + "end_line": 810, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 817, + "end_line": 839, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/acp-bridge/src/cli.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 7, + "end_line": 13, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 72, + "end_line": 78, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/acp-bridge/src/index.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 19, + "end_line": 26, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/api-types/.trajectories/active/traj_xbsvuzogscey.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/api-types/.trajectories/index.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/api-types/package.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/api-types/scripts/generate-openapi.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/api-types/src/index.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/api-types/src/schemas/agent.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/api-types/src/schemas/agent.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/api-types/src/schemas/api.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/api-types/src/schemas/api.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/api-types/src/schemas/decision.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/api-types/src/schemas/decision.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/api-types/src/schemas/fleet.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/api-types/src/schemas/fleet.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/api-types/src/schemas/history.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/api-types/src/schemas/history.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/api-types/src/schemas/index.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/api-types/src/schemas/message.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/api-types/src/schemas/message.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/api-types/src/schemas/session.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/api-types/src/schemas/session.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/api-types/src/schemas/task.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/api-types/src/schemas/task.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/api-types/tsconfig.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/api-types/vitest.config.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/benchmark/README.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/benchmark/datasets/coding-tasks.yaml", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/benchmark/datasets/coordination-tasks.yaml", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/benchmark/datasets/quick-test.yaml", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/benchmark/package.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/benchmark/src/benchmark.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/benchmark/src/cli.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/benchmark/src/harbor.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/benchmark/src/index.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/benchmark/src/runners/base.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/benchmark/src/runners/index.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/benchmark/src/runners/single.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/benchmark/src/runners/subagent.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/benchmark/src/runners/swarm.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/benchmark/src/types.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/benchmark/tsconfig.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/bridge/package.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/bridge/src/cli-resolution.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/bridge/src/cli-resolution.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/bridge/src/index.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/bridge/src/multi-project-client.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/bridge/src/multi-project-client.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/bridge/src/shadow-cli.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/bridge/src/spawner-mcp.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/bridge/src/spawner.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/bridge/src/types.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/bridge/src/utils.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/bridge/src/utils.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/bridge/tsconfig.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/bridge/vitest.config.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/cli-tester/README.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/cli-tester/docker/Dockerfile", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/cli-tester/docker/docker-compose.yml", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/cli-tester/docker/entrypoint.sh", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/cli-tester/package.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/cli-tester/scripts/clear-auth.sh", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/cli-tester/scripts/inject-message.sh", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/cli-tester/scripts/start.sh", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/cli-tester/scripts/test-cli.sh", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/cli-tester/scripts/test-full-spawn.sh", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/cli-tester/scripts/test-registration.sh", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/cli-tester/scripts/test-setup-flow.sh", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/cli-tester/scripts/test-spawn.sh", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/cli-tester/scripts/test-with-daemon.sh", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/cli-tester/scripts/verify-auth.sh", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/cli-tester/src/index.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/cli-tester/src/utils/credential-check.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/cli-tester/src/utils/socket-client.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/cli-tester/tests/credential-check.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/cli-tester/tsconfig.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/config/package.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 6, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 83, + "end_line": 88, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/config/src/cli-auth-config.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 208, + "end_line": 220, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/config/src/cli-registry.generated.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 319, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/config/src/cloud-config.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 42, + "end_line": 48, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 138, + "end_line": 144, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/config/src/index.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 10, + "end_line": 13, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/config/src/schemas.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 41, + "end_line": 94, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/config/src/schemas.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 152, + "end_line": 158, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/config/src/shadow-config.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 21, + "end_line": 34, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/continuity/package.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/continuity/src/formatter.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/continuity/src/handoff-store.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/continuity/src/index.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/continuity/src/ledger-store.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/continuity/src/manager.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/continuity/src/manager.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/continuity/src/parser.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/continuity/src/parser.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/continuity/src/types.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/continuity/tsconfig.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/continuity/vitest.config.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/daemon/package.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/daemon/src/agent-manager.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/daemon/src/agent-registry.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/daemon/src/agent-signing.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/daemon/src/api.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/daemon/src/auth.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/daemon/src/channel-membership-store.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/daemon/src/cli-auth.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/daemon/src/cloud-sync.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/daemon/src/connection.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/daemon/src/consensus-integration.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/daemon/src/consensus.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/daemon/src/delivery-tracker.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/daemon/src/enhanced-features.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/daemon/src/index.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/daemon/src/orchestrator.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/daemon/src/orchestrator.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/daemon/src/rate-limiter.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/daemon/src/registry.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/daemon/src/repo-manager.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/daemon/src/router.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/daemon/src/router.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/daemon/src/server.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/daemon/src/spawn-manager-set-model.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/daemon/src/spawn-manager.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/daemon/src/sync-queue.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/daemon/src/types.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/daemon/src/workspace-manager.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/daemon/tsconfig.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/daemon/vitest.config.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/hooks/package.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 6, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 37, + "end_line": 45, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/hooks/src/inbox-check/types.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 22, + "end_line": 29, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/hooks/src/types.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 5, + "end_line": 20, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/mcp/CHANGELOG.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/LICENSE", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/README.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/SPEC.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/STAFFING_PLAN.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/package.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/src/bin.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/src/client-adapter.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/src/cloud.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/src/errors.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/src/file-transport.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/src/hybrid-client.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/src/index.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/src/install-cli.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/src/install.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/src/prompts/index.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/src/prompts/protocol.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/src/resources/agents.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/src/resources/inbox.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/src/resources/index.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/src/resources/project.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/src/server.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/src/simple.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/src/tools/index.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/src/tools/relay-broadcast.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/src/tools/relay-channel.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/src/tools/relay-connected.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/src/tools/relay-consensus.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/src/tools/relay-continuity.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/src/tools/relay-health.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/src/tools/relay-inbox.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/src/tools/relay-logs.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/src/tools/relay-messages.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/src/tools/relay-metrics.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/src/tools/relay-release.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/src/tools/relay-remove-agent.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/src/tools/relay-send.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/src/tools/relay-set-model.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/src/tools/relay-shadow.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/src/tools/relay-spawn.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/src/tools/relay-status.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/src/tools/relay-subscribe.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/src/tools/relay-who.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/tests/client.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/tests/discover.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/tests/install.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/tests/prompts.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/tests/resources.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/tests/tools.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/tsconfig.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/mcp/vitest.config.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/memory/package.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 6, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 22, + "end_line": 28, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/policy/package.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 6, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 22, + "end_line": 28, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/protocol/package.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/protocol/src/channels.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/protocol/src/channels.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/protocol/src/framing.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/protocol/src/framing.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/protocol/src/id-generator.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/protocol/src/index.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/protocol/src/relay-pty-schemas.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/protocol/src/types.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/protocol/src/types.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/protocol/tsconfig.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/protocol/vitest.config.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/resiliency/package.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/resiliency/src/cgroup-manager.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/resiliency/src/context-persistence.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/resiliency/src/crash-insights.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/resiliency/src/crash-insights.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/resiliency/src/gossip-health.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/resiliency/src/health-monitor.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/resiliency/src/index.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/resiliency/src/leader-watchdog.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/resiliency/src/logger.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/resiliency/src/memory-monitor.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/resiliency/src/memory-monitor.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/resiliency/src/metrics.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/resiliency/src/provider-context.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/resiliency/src/stateless-lead.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/resiliency/src/supervisor.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/resiliency/tsconfig.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/resiliency/vitest.config.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/sdk-py/README.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 141, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk-py/agent_relay/__init__.py", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 21, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk-py/agent_relay/models.py", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 204, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk-py/pyproject.toml", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 23, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk-py/src/agent_relay/__init__.py", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 103, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk-py/src/agent_relay/builder.py", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 692, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk-py/src/agent_relay/templates.py", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 197, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk-py/src/agent_relay/types.py", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 581, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk-py/tests/__init__.py", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/sdk-py/tests/test_builder.py", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 215, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk-ts/package-lock.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 63, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/.mcp.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 11, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/README.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 97, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/bin/agent-relay-broker", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/sdk/examples/SWARM_CAPABILITIES.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/sdk/examples/SWARM_PATTERNS.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/sdk/package.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 82, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/scripts/bundle-agent-relay.mjs", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 53, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/__tests__/error-scenarios.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 682, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/__tests__/facade.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 296, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/__tests__/idle-nudge.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 429, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/__tests__/integration.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 161, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/__tests__/orchestration-upgrades.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 695, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/__tests__/quickstart.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 198, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/__tests__/spawn-from-env.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 282, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/__tests__/swarm-coordinator.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 839, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/__tests__/unit.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 272, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/__tests__/workflow-runner.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 385, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/__tests__/workflow-trajectory.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 408, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/browser-client.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/sdk/src/browser-framing.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/sdk/src/browser-framing.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/sdk/src/browser.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 57, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/client.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/sdk/src/client.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 630, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/consensus-helpers.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 253, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/consensus.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 506, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/discovery.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/sdk/src/errors.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/sdk/src/examples/demo.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 88, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/examples/example.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 91, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/examples/quickstart.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 72, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/examples/ralph-loop.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 352, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/examples/sample-prd.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 37, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/examples/workflow-superiority.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 1486, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/index.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 24, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/logs.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/sdk/src/logs.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 13, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 15, + "end_line": 99, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 101, + "end_line": 140, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 142, + "end_line": 153, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 155, + "end_line": 162, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/models.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 36, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/protocol.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 369, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/protocol/framing.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/sdk/src/protocol/index.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/sdk/src/pty.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 16, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/relay-adapter.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 278, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/relay.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 1021, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/relaycast.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 334, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/shadow.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 228, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/spawn-from-env.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 245, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/standalone.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/sdk/src/transports/index.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/sdk/src/transports/socket-transport.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/sdk/src/transports/types.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/sdk/src/transports/websocket-transport.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/sdk/src/workflows/README.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 656, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/workflows/barrier.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 254, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/workflows/builder.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 245, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/workflows/builtin-templates/bug-fix.yaml", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 135, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/workflows/builtin-templates/code-review.yaml", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 133, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/workflows/builtin-templates/competitive.yaml", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 103, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/workflows/builtin-templates/documentation.yaml", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 120, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/workflows/builtin-templates/feature-dev.yaml", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 142, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/workflows/builtin-templates/refactor.yaml", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 141, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/workflows/builtin-templates/security-audit.yaml", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 129, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/workflows/cli.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 97, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/workflows/coordinator.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 801, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/workflows/index.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 21, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/workflows/memory-db.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 39, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/workflows/run.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 55, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/workflows/runner.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 2252, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/workflows/schema.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 488, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/workflows/state.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 279, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/workflows/templates.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 551, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/workflows/trajectory.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 507, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/src/workflows/types.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 287, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/tsconfig.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 24, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/sdk/vitest.config.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 4, + "end_line": 9, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/shared/cli-registry.yaml", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 187, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/shared/codegen-py.mjs", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 215, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/shared/codegen-ts.mjs", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 226, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/spawner/.trajectories/index.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/spawner/API.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/spawner/package.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/spawner/src/index.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/spawner/src/types.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/spawner/src/types.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/spawner/tsconfig.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/spawner/vitest.config.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/state/package.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/state/src/agent-state.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/state/src/agent-state.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/state/src/index.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/state/tsconfig.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/state/vitest.config.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/storage/package.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/storage/src/adapter.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/storage/src/batched-sqlite-adapter.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/storage/src/batched-sqlite-adapter.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/storage/src/dead-letter-queue.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/storage/src/dlq-adapter.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/storage/src/dlq-adapter.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/storage/src/index.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/storage/src/jsonl-adapter.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/storage/src/jsonl-adapter.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/storage/src/memory-adapter.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/storage/src/sqlite-adapter.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/storage/src/sqlite-adapter.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/storage/tsconfig.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/storage/vitest.config.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/telemetry/package.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 6, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/trajectory/package.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 6, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 22, + "end_line": 28, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/user-directory/package.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 6, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 22, + "end_line": 28, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/user-directory/src/user-directory.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 22, + "end_line": 28, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/utils/package.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 6, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 112, + "end_line": 118, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/utils/src/client-helpers.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 16, + "end_line": 22, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/utils/src/legacy-protocol.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 151, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/utils/src/relay-pty-path.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 36, + "end_line": 47, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 52, + "end_line": 58, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 89, + "end_line": 95, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 105, + "end_line": 111, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 116, + "end_line": 122, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 131, + "end_line": 137, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 156, + "end_line": 162, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 203, + "end_line": 209, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 225, + "end_line": 231, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 253, + "end_line": 259, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/utils/src/relay-pty-path.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 108, + "end_line": 114, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "packages/wrapper/package.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/wrapper/src/__fixtures__/claude-outputs.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/wrapper/src/__fixtures__/codex-outputs.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/wrapper/src/__fixtures__/gemini-outputs.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/wrapper/src/__fixtures__/index.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/wrapper/src/auth-detection.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/wrapper/src/base-wrapper.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/wrapper/src/base-wrapper.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/wrapper/src/client.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/wrapper/src/client.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/wrapper/src/id-generator.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/wrapper/src/id-generator.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/wrapper/src/idle-detector.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/wrapper/src/idle-detector.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/wrapper/src/inbox.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/wrapper/src/inbox.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/wrapper/src/index.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/wrapper/src/opencode-api.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/wrapper/src/opencode-api.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/wrapper/src/opencode-wrapper.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/wrapper/src/parser.regression.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/wrapper/src/parser.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/wrapper/src/parser.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/wrapper/src/prompt-composer.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/wrapper/src/prompt-composer.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/wrapper/src/relay-pty-orchestrator.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/wrapper/src/relay-pty-orchestrator.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/wrapper/src/shared.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/wrapper/src/shared.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/wrapper/src/stuck-detector.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/wrapper/src/stuck-detector.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/wrapper/src/tmux-resolver.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/wrapper/src/tmux-resolver.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/wrapper/src/tmux-wrapper.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/wrapper/src/tmux-wrapper.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/wrapper/src/trajectory-detection.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/wrapper/src/trajectory-integration.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/wrapper/src/wrapper-events.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/wrapper/src/wrapper-types.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/wrapper/tsconfig.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "packages/wrapper/vitest.config.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "prpm.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 8, + "end_line": 67, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 82, + "end_line": 88, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "relay-pty/src/protocol.rs", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 236, + "end_line": 249, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "relay-snippets/agent-relay-protocol.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 4, + "end_line": 14, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 17, + "end_line": 22, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 51, + "end_line": 64, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "relay-snippets/agent-relay-snippet.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 117, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "scripts/build-bun.sh", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 65, + "end_line": 71, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 97, + "end_line": 103, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "scripts/check-cli-versions.mjs", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 225, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "scripts/hooks/pre-commit", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 22, + "end_line": 44, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "scripts/postinstall.js", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 357, + "end_line": 467, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 497, + "end_line": 504, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 683, + "end_line": 689, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 699, + "end_line": 710, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 737, + "end_line": 745, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 750, + "end_line": 756, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "scripts/spawn-reviewers.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 97, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "scripts/stress-test-orchestrator-integration.mts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 32, + "end_line": 44, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "scripts/todo-scan.sh", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 3, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "specs/PRIMITIVES_ROADMAP.md", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "src/auth.rs", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 796, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/bridge/index.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "src/cli/bootstrap.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 114, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/cli/bootstrap.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 128, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/cli/commands/agent-management.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 273, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/cli/commands/agent-management.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 403, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/cli/commands/auth.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 174, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/cli/commands/auth.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 53, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/cli/commands/cloud.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 296, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/cli/commands/cloud.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 489, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/cli/commands/core.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 369, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/cli/commands/core.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 360, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/cli/commands/doctor.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 5, + "end_line": 10, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 21, + "end_line": 28, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 143, + "end_line": 150, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 159, + "end_line": 166, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 192, + "end_line": 203, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 212, + "end_line": 220, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/cli/commands/doctor.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 1, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/cli/commands/messaging.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 242, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/cli/commands/messaging.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 291, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/cli/commands/monitoring.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 189, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/cli/commands/monitoring.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 471, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/cli/commands/setup.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 99, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/cli/commands/setup.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 306, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/cli/index.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 4, + "end_line": 9, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 31, + "end_line": 36, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 66, + "end_line": 71, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 76, + "end_line": 81, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 84, + "end_line": 128, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 130, + "end_line": 165, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 183, + "end_line": 185, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/cli/index.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 12, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/cli/lib/agent-management-listing.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 325, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/cli/lib/auth-ssh.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 676, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/cli/lib/bridge.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 129, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/cli/lib/broker-lifecycle.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 370, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/cli/lib/client-factory.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 52, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/cli/lib/cloud-client.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 143, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/cli/lib/core-maintenance.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 298, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/cli/lib/doctor.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 573, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/cli/lib/formatting.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 48, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/cli/lib/index.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 4, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/cli/lib/jsonc.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 97, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/cli/lib/monitoring-health.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 34, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/cli/lib/paths.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 5, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/config.rs", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 79, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/continuity/index.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "src/control.rs", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 41, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/conversation_log.rs", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 225, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/crash_insights.rs", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 427, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/daemon/index.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "src/dedup.rs", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 99, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/events.rs", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 73, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/helpers.rs", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 1040, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/hooks/check-inbox.sh", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 47, + "end_line": 53, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 57, + "end_line": 63, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/index.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 3, + "end_line": 12, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 30, + "end_line": 32, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/inject.rs", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 146, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/lib.rs", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 21, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/main.rs", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 4159, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/message_bridge.rs", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 837, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/metrics.rs", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 386, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/priorities.rs", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 37, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/protocol.rs", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 385, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/protocol/index.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "src/pty.rs", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 141, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/pty_worker.rs", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 533, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/queue.rs", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 260, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/redact.rs", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 37, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/relaycast_ws.rs", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 558, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/resiliency/index.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "src/scheduler.rs", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 251, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/sdk/contract.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "src/snippets.rs", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 878, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/spawner.rs", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 302, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/state/index.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "src/storage/index.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "src/supervisor.rs", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 459, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/telemetry.rs", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 462, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/types.rs", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 100, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/wrap.rs", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 969, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "src/wrapper/index.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "tests/benchmarks/harness.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 100, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "tests/benchmarks/head-to-head.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 617, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "tests/benchmarks/latency.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 69, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "tests/benchmarks/overhead.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 76, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "tests/benchmarks/reliability.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 77, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "tests/benchmarks/scale-out.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 68, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "tests/benchmarks/stress.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 358, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "tests/benchmarks/throughput.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 63, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "tests/continuity.rs", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 357, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "tests/integration/broker/cli-spawn.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 529, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "tests/integration/broker/continuity.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 280, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "tests/integration/broker/edge-cases.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 345, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "tests/integration/broker/events.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 269, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "tests/integration/broker/functionality.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 513, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "tests/integration/broker/lifecycle.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 253, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "tests/integration/broker/lockfile.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 725, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "tests/integration/broker/messaging.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 336, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "tests/integration/broker/observability.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 194, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "tests/integration/broker/stress.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 301, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "tests/integration/broker/tic-tac-toe.test.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 179, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "tests/integration/broker/tsconfig.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 15, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "tests/integration/broker/utils/assert-helpers.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 237, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "tests/integration/broker/utils/broker-harness.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 341, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "tests/integration/broker/utils/cli-helpers.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 78, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "tests/integration/mcp/06-mcp-connect.js", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "tests/integration/mcp/07-mcp-message.js", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "tests/integration/mcp/08-mcp-receive.js", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "tests/integration/mcp/09-mcp-spawn-release.js", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "tests/integration/mcp/10-mcp-multi-worker.js", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "tests/integration/mcp/11-mcp-broadcast.js", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "tests/integration/mcp/12-mcp-multi-claude.js", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "tests/integration/mcp/13-mcp-negotiation.js", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "tests/integration/mcp/14-mcp-orchestration.js", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "tests/integration/mcp/15-mcp-send-cli.js", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "tests/integration/mcp/16-mcp-channels.js", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "tests/integration/mcp/17-mcp-await-response.js", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "tests/integration/mcp/18-mcp-consensus.js", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "tests/integration/mcp/19-mcp-pubsub.js", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "tests/integration/mcp/20-mcp-shadow.js", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "tests/integration/mcp/21-mcp-health-metrics.js", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "tests/integration/mcp/22-mcp-threads.js", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "tests/integration/mcp/23-mcp-error-handling.js", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "tests/integration/mcp/24-mcp-continuity.js", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "tests/integration/mcp/25-mcp-socket-discovery.js", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [] + } + ] + }, + { + "path": "tests/integration/run-all-tests.js", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 15, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 28, + "end_line": 33, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 39, + "end_line": 48, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 113, + "end_line": 126, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "tests/parity/broadcast.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 109, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "tests/parity/continuity-handoff.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 122, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "tests/parity/multi-worker.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 110, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "tests/parity/orch-to-worker.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 102, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "tests/parity/stability-soak.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 1, + "end_line": 118, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "tsconfig.json", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 3, + "end_line": 14, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 21, + "end_line": 77, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + }, + { + "path": "vitest.config.ts", + "conversations": [ + { + "contributor": { + "type": "agent", + "model": "unknown" + }, + "ranges": [ + { + "start_line": 5, + "end_line": 10, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 13, + "end_line": 23, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 26, + "end_line": 31, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 38, + "end_line": 53, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + }, + { + "start_line": 57, + "end_line": 78, + "revision": "1de18c33b342008d0d4364e0bd19eb9ca9cf4fc6" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/.trajectories/completed/2026-02/traj_sgvc6cssfokn.json b/.trajectories/completed/2026-02/traj_sgvc6cssfokn.json new file mode 100644 index 00000000..ddf36b92 --- /dev/null +++ b/.trajectories/completed/2026-02/traj_sgvc6cssfokn.json @@ -0,0 +1,53 @@ +{ + "id": "traj_sgvc6cssfokn", + "version": 1, + "task": { + "title": "Rename Rust binary to agent-relay-broker and clean up TS CLI legacy patterns" + }, + "status": "completed", + "startedAt": "2026-02-20T10:51:47.859Z", + "agents": [ + { + "name": "default", + "role": "lead", + "joinedAt": "2026-02-21T16:41:15.138Z" + } + ], + "chapters": [ + { + "id": "chap_itrg0um4ql73", + "title": "Work", + "agentName": "default", + "startedAt": "2026-02-21T16:41:15.138Z", + "events": [ + { + "ts": 1771692075139, + "type": "decision", + "content": "Replaced custom Relaycast WS/HTTP clients with relaycast crate adapter: Replaced custom Relaycast WS/HTTP clients with relaycast crate adapter", + "raw": { + "question": "Replaced custom Relaycast WS/HTTP clients with relaycast crate adapter", + "chosen": "Replaced custom Relaycast WS/HTTP clients with relaycast crate adapter", + "alternatives": [], + "reasoning": "Align broker runtime with official SDK API surface and reduce protocol drift" + }, + "significance": "high" + } + ], + "endedAt": "2026-02-21T16:41:20.673Z" + } + ], + "commits": [], + "filesChanged": [], + "projectId": "/Users/khaliqgant/Projects/agent-workforce/relay-cli-uses-broker", + "tags": [], + "_trace": { + "startRef": "ce11276934714f88cd0c647b037fb93e8072b91b", + "endRef": "ce11276934714f88cd0c647b037fb93e8072b91b" + }, + "completedAt": "2026-02-21T16:41:20.673Z", + "retrospective": { + "summary": "Migrated Relaycast WS and REST integration to the official relaycast Rust crate via compatibility adapters", + "approach": "Standard approach", + "confidence": 0.86 + } +} \ No newline at end of file diff --git a/.trajectories/completed/2026-02/traj_sgvc6cssfokn.md b/.trajectories/completed/2026-02/traj_sgvc6cssfokn.md new file mode 100644 index 00000000..2b3e80d7 --- /dev/null +++ b/.trajectories/completed/2026-02/traj_sgvc6cssfokn.md @@ -0,0 +1,31 @@ +# Trajectory: Rename Rust binary to agent-relay-broker and clean up TS CLI legacy patterns + +> **Status:** ✅ Completed +> **Confidence:** 86% +> **Started:** February 20, 2026 at 05:51 AM +> **Completed:** February 21, 2026 at 11:41 AM + +--- + +## Summary + +Migrated Relaycast WS and REST integration to the official relaycast Rust crate via compatibility adapters + +**Approach:** Standard approach + +--- + +## Key Decisions + +### Replaced custom Relaycast WS/HTTP clients with relaycast crate adapter +- **Chose:** Replaced custom Relaycast WS/HTTP clients with relaycast crate adapter +- **Reasoning:** Align broker runtime with official SDK API surface and reduce protocol drift + +--- + +## Chapters + +### 1. Work +*Agent: default* + +- Replaced custom Relaycast WS/HTTP clients with relaycast crate adapter: Replaced custom Relaycast WS/HTTP clients with relaycast crate adapter diff --git a/.trajectories/index.json b/.trajectories/index.json index 21cac8ad..6a422d04 100644 --- a/.trajectories/index.json +++ b/.trajectories/index.json @@ -1,6 +1,6 @@ { "version": 1, - "lastUpdated": "2026-02-20T10:51:47.879Z", + "lastUpdated": "2026-02-21T16:49:12.480Z", "trajectories": { "traj_1b1dj40sl6jl": { "title": "Revert aggressive retry logic in relay-pty-orchestrator", @@ -389,9 +389,17 @@ }, "traj_sgvc6cssfokn": { "title": "Rename Rust binary to agent-relay-broker and clean up TS CLI legacy patterns", - "status": "active", + "status": "completed", "startedAt": "2026-02-20T10:51:47.859Z", - "path": "/Users/khaliqgant/Projects/agent-workforce/relay-cli-uses-broker/.trajectories/active/traj_sgvc6cssfokn.json" + "completedAt": "2026-02-21T16:41:20.673Z", + "path": "/Users/will/Projects/relay/.trajectories/completed/2026-02/traj_sgvc6cssfokn.json" + }, + "traj_dnxtht96w13o": { + "title": "Make doctor tolerant of missing better-sqlite3", + "status": "completed", + "startedAt": "2026-02-10T12:22:01.414Z", + "completedAt": "2026-02-21T16:49:12.107Z", + "path": "/Users/will/Projects/relay/.trajectories/completed/2026-02/traj_dnxtht96w13o.json" } } } \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index c7f6c4e4..f371f516 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -20,6 +20,7 @@ dependencies = [ "portable-pty", "rand 0.8.5", "regex", + "relaycast", "reqwest", "serde", "serde_json", @@ -27,7 +28,6 @@ dependencies = [ "tempfile", "thiserror 2.0.18", "tokio", - "tokio-tungstenite", "tracing", "tracing-subscriber", "uuid", @@ -1130,7 +1130,7 @@ dependencies = [ "libc", "percent-encoding", "pin-project-lite", - "socket2 0.5.10", + "socket2 0.6.2", "tokio", "tower-service", "tracing", @@ -1717,7 +1717,7 @@ dependencies = [ "quinn-udp", "rustc-hash", "rustls", - "socket2 0.5.10", + "socket2 0.6.2", "thiserror 2.0.18", "tokio", "tracing", @@ -1754,7 +1754,7 @@ dependencies = [ "cfg_aliases", "libc", "once_cell", - "socket2 0.5.10", + "socket2 0.6.2", "tracing", "windows-sys 0.60.2", ] @@ -1893,6 +1893,24 @@ version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a96887878f22d7bad8a3b6dc5b7440e0ada9a245242924394987b21cf2210a4c" +[[package]] +name = "relaycast" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3b2d1a6698b32557e3c7663592dbc9700eb603085f569adf40dbec1c1719ebe" +dependencies = [ + "futures-util", + "reqwest", + "serde", + "serde_json", + "thiserror 2.0.18", + "tokio", + "tokio-tungstenite", + "tracing", + "url", + "urlencoding", +] + [[package]] name = "reqwest" version = "0.12.28" @@ -2707,6 +2725,12 @@ dependencies = [ "serde", ] +[[package]] +name = "urlencoding" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" + [[package]] name = "utf-8" version = "0.7.6" diff --git a/Cargo.toml b/Cargo.toml index 802933ca..d3fbd718 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -25,12 +25,12 @@ portable-pty = "0.8" rand = "0.8" regex = "1.11" reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] } +relaycast = "0.2.5" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" sha2 = "0.10" thiserror = "2.0" tokio = { version = "1.44", features = ["full"] } -tokio-tungstenite = { version = "0.24", features = ["rustls-tls-native-roots"] } tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter", "fmt"] } tempfile = "3.19" diff --git a/package.json b/package.json index 524fd1ce..ee355b32 100644 --- a/package.json +++ b/package.json @@ -133,7 +133,7 @@ "update:cli-versions": "node scripts/check-cli-versions.mjs --update && npm run codegen:models", "codegen:models:ts": "node packages/shared/codegen-ts.mjs", "codegen:models:py": "node packages/shared/codegen-py.mjs", - "prepare": "husky" + "prepare": "node scripts/prepare.js" }, "lint-staged": { "*.{ts,tsx}": [ diff --git a/scripts/prepare.js b/scripts/prepare.js new file mode 100644 index 00000000..b9c8602d --- /dev/null +++ b/scripts/prepare.js @@ -0,0 +1,38 @@ +#!/usr/bin/env node + +import { spawnSync } from 'node:child_process'; +import { existsSync } from 'node:fs'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; + +const scriptDir = path.dirname(fileURLToPath(import.meta.url)); +const rootDir = path.resolve(scriptDir, '..'); + +if (process.env.CI === 'true') { + console.log('[info] CI detected, skipping husky install'); + process.exit(0); +} + +const huskyBin = path.join( + rootDir, + 'node_modules', + '.bin', + process.platform === 'win32' ? 'husky.cmd' : 'husky', +); + +if (!existsSync(huskyBin)) { + console.log('[info] husky not installed, skipping prepare hook'); + process.exit(0); +} + +const result = spawnSync(huskyBin, { + cwd: rootDir, + stdio: 'inherit', +}); + +if (result.error) { + console.error(`[error] failed to run husky: ${result.error.message}`); + process.exit(1); +} + +process.exit(result.status ?? 1); diff --git a/src/auth.rs b/src/auth.rs index 59a6ea83..5c4691c0 100644 --- a/src/auth.rs +++ b/src/auth.rs @@ -5,9 +5,9 @@ use std::{ use anyhow::{Context, Result}; use chrono::{DateTime, Utc}; +use relaycast::{CreateAgentRequest, RelayCast, RelayCastOptions, RelayError}; use reqwest::StatusCode; use serde::{Deserialize, Serialize}; -use serde_json::{json, Value}; use uuid::Uuid; #[derive(Debug, Clone, Serialize, Deserialize)] @@ -116,7 +116,6 @@ fn set_owner_only_permissions(_path: &Path) -> Result<()> { #[derive(Clone)] pub struct AuthClient { - http: reqwest::Client, base_url: String, store: CredentialStore, } @@ -124,7 +123,6 @@ pub struct AuthClient { impl AuthClient { pub fn new(base_url: impl Into, store: CredentialStore) -> Self { Self { - http: reqwest::Client::new(), base_url: base_url.into(), store, } @@ -163,33 +161,24 @@ impl AuthClient { let api_key = normalize_workspace_key(&cached.api_key) .context("cached api_key is not a valid workspace key")?; - let response = self - .http - .post(format!( - "{}/v1/agents/{}/rotate-token", - self.base_url, agent_name - )) - .bearer_auth(&api_key) - .send() - .await?; - - if response.status() == StatusCode::NOT_FOUND { - tracing::info!( - target = "relay_broker::auth", - agent_name = %agent_name, - "agent not found during token rotation, falling back to re-registration" - ); - return self.refresh_session(cached).await; - } - - let response = response.error_for_status()?; - let body: Value = response.json().await?; - let data = body.get("data").unwrap_or(&body); - let token = data - .get("token") - .and_then(Value::as_str) - .context("rotate-token response missing token")? - .to_string(); + let relay = self + .relay_for_workspace_key(&api_key) + .context("failed to initialize relaycast client for token rotation")?; + + let token = match relay.rotate_agent_token(agent_name).await { + Ok(rotated) => rotated.token, + Err(error) if is_not_found_relay_error(&error) => { + tracing::info!( + target = "relay_broker::auth", + agent_name = %agent_name, + "agent not found during token rotation, falling back to re-registration" + ); + return self.refresh_session(cached).await; + } + Err(error) => { + return Err(anyhow::Error::new(error)).context("failed to rotate relaycast token"); + } + }; let creds = CredentialCache { workspace_id: cached.workspace_id.clone(), @@ -206,6 +195,11 @@ impl AuthClient { }) } + fn relay_for_workspace_key(&self, workspace_key: &str) -> Result { + RelayCast::new(RelayCastOptions::new(workspace_key).with_base_url(self.base_url.clone())) + .context("failed to initialize relaycast workspace client") + } + async fn startup_from_sources( &self, requested_name: Option<&str>, @@ -312,28 +306,10 @@ impl AuthClient { } async fn create_workspace(&self, name: &str) -> Result<(String, String)> { - let response = self - .http - .post(format!("{}/v1/workspaces", self.base_url)) - .json(&json!({ "name": name })) - .send() - .await? - .error_for_status()?; - - let body: Value = response.json().await?; - let data = body.get("data").unwrap_or(&body); - let workspace_id = data - .get("workspace_id") - .and_then(Value::as_str) - .or_else(|| data.get("id").and_then(Value::as_str)) - .context("workspace create response missing workspace id")? - .to_string(); - let api_key = data - .get("api_key") - .and_then(Value::as_str) - .context("workspace create response missing api_key")? - .to_string(); - Ok((workspace_id, api_key)) + let created = RelayCast::create_workspace(name, Some(&self.base_url)) + .await + .context("failed creating relaycast workspace")?; + Ok((created.workspace_id, created.api_key)) } async fn register_agent_with_workspace_key( @@ -347,55 +323,36 @@ impl AuthClient { .map(ToOwned::to_owned) .unwrap_or_else(|| format!("agent-{}", Uuid::new_v4().simple())); + let relay = self.relay_for_workspace_key(workspace_key)?; + loop { - let response = self - .http - .post(format!("{}/v1/agents", self.base_url)) - .bearer_auth(workspace_key) - .json(&json!({ - "name": name, - "type": "agent", - })) - .send() - .await?; - - if response.status() == StatusCode::CONFLICT { - if strict_name { - anyhow::bail!("agent name '{}' already exists", name); + let request = CreateAgentRequest { + name: name.clone(), + agent_type: Some("agent".to_string()), + persona: None, + metadata: None, + }; + + match relay.register_agent(request).await { + Ok(agent) => { + return Ok((agent.id, agent.name, agent.token, None)); + } + Err(error) if is_conflict_relay_error(&error) => { + if strict_name { + anyhow::bail!("agent name '{}' already exists", name); + } + if !attempted_retry { + attempted_retry = true; + let suffix = Uuid::new_v4().simple().to_string(); + name = format!("{}-{}", name, &suffix[..8]); + continue; + } + return Err(anyhow::Error::new(error)); } - if !attempted_retry { - attempted_retry = true; - let suffix = Uuid::new_v4().simple().to_string(); - name = format!("{}-{}", name, &suffix[..8]); - continue; + Err(error) => { + return Err(anyhow::Error::new(error)); } } - - let response = response.error_for_status()?; - let body: Value = response.json().await?; - let data = body.get("data").unwrap_or(&body); - let token = data - .get("token") - .and_then(Value::as_str) - .context("agent register response missing token")? - .to_string(); - let agent_id = data - .get("id") - .and_then(Value::as_str) - .or_else(|| data.get("agent_id").and_then(Value::as_str)) - .unwrap_or(&name) - .to_string(); - let returned_name = data - .get("name") - .and_then(Value::as_str) - .unwrap_or(&name) - .to_string(); - let workspace_id = data - .get("workspace_id") - .and_then(Value::as_str) - .map(ToOwned::to_owned); - - return Ok((agent_id, returned_name, token, workspace_id)); } } @@ -414,9 +371,42 @@ fn normalize_workspace_key(raw: &str) -> Option { } fn is_auth_rejection(err: &anyhow::Error) -> bool { + relay_status(err) + .is_some_and(|status| status == StatusCode::UNAUTHORIZED || status == StatusCode::FORBIDDEN) +} + +fn relay_status(err: &anyhow::Error) -> Option { + if let Some(relay_err) = err.downcast_ref::() { + return match relay_err { + RelayError::Api { status, .. } => StatusCode::from_u16(*status).ok(), + RelayError::Http(http_err) => http_err.status(), + _ => None, + }; + } err.downcast_ref::() .and_then(reqwest::Error::status) - .is_some_and(|status| status == StatusCode::UNAUTHORIZED || status == StatusCode::FORBIDDEN) +} + +fn is_conflict_relay_error(err: &RelayError) -> bool { + match err { + RelayError::Api { code, status, .. } => { + *status == StatusCode::CONFLICT.as_u16() + || matches!(code.as_str(), "agent_already_exists" | "name_taken") + } + RelayError::Http(http_err) => http_err.status() == Some(StatusCode::CONFLICT), + _ => false, + } +} + +fn is_not_found_relay_error(err: &RelayError) -> bool { + match err { + RelayError::Api { code, status, .. } => { + *status == StatusCode::NOT_FOUND.as_u16() + || matches!(code.as_str(), "not_found" | "agent_not_found") + } + RelayError::Http(http_err) => http_err.status() == Some(StatusCode::NOT_FOUND), + _ => false, + } } #[cfg(test)] @@ -449,7 +439,7 @@ mod tests { when.method(POST).path("/v1/workspaces"); then.status(200) .header("content-type", "application/json") - .body(r#"{"ok":true,"data":{"workspace_id":"ws_new","api_key":"rk_live_new"}}"#); + .body(r#"{"ok":true,"data":{"workspace_id":"ws_new","api_key":"rk_live_new","created_at":"2026-02-21T00:00:00Z"}}"#); }); let register = server.mock(|when, then| { when.method(POST) @@ -457,7 +447,7 @@ mod tests { .header("authorization", "Bearer rk_live_new"); then.status(200) .header("content-type", "application/json") - .body(r#"{"ok":true,"data":{"id":"a1","name":"lead","token":"at_live_1","workspace_id":"ws_new"}}"#); + .body(r#"{"ok":true,"data":{"id":"a1","name":"lead","token":"at_live_1","status":"online","created_at":"2026-02-21T00:00:00Z","workspace_id":"ws_new"}}"#); }); let dir = tempdir().unwrap(); @@ -485,7 +475,7 @@ mod tests { .header("authorization", "Bearer rk_live_cached"); then.status(200) .header("content-type", "application/json") - .body(r#"{"ok":true,"data":{"id":"a2","name":"lead","token":"at_live_2","workspace_id":"ws_cached"}}"#); + .body(r#"{"ok":true,"data":{"id":"a2","name":"lead","token":"at_live_2","status":"online","created_at":"2026-02-21T00:00:00Z","workspace_id":"ws_cached"}}"#); }); let dir = tempdir().unwrap(); @@ -517,7 +507,7 @@ mod tests { when.method(POST).path("/v1/workspaces"); then.status(200) .header("content-type", "application/json") - .body(r#"{"ok":true,"data":{"workspace_id":"ws_boot","api_key":"rk_live_boot"}}"#); + .body(r#"{"ok":true,"data":{"workspace_id":"ws_boot","api_key":"rk_live_boot","created_at":"2026-02-21T00:00:00Z"}}"#); }); let register = server.mock(|when, then| { when.method(POST) @@ -525,7 +515,7 @@ mod tests { .header("authorization", "Bearer rk_live_boot"); then.status(200) .header("content-type", "application/json") - .body(r#"{"ok":true,"data":{"id":"a3","name":"lead","token":"at_live_3"}}"#); + .body(r#"{"ok":true,"data":{"id":"a3","name":"lead","token":"at_live_3","status":"online","created_at":"2026-02-21T00:00:00Z"}}"#); }); let dir = tempdir().unwrap(); @@ -553,7 +543,7 @@ mod tests { .header("authorization", "Bearer rk_live_cached"); then.status(200) .header("content-type", "application/json") - .body(r#"{"ok":true,"data":{"id":"a4","name":"lead","token":"at_live_4","workspace_id":"ws_cached"}}"#); + .body(r#"{"ok":true,"data":{"id":"a4","name":"lead","token":"at_live_4","status":"online","created_at":"2026-02-21T00:00:00Z","workspace_id":"ws_cached"}}"#); }); let dir = tempdir().unwrap(); @@ -584,13 +574,13 @@ mod tests { .header("authorization", "Bearer rk_live_stale"); then.status(401) .header("content-type", "application/json") - .body(r#"{"error":"unauthorized"}"#); + .body(r#"{"ok":false,"error":{"code":"unauthorized","message":"unauthorized"}}"#); }); let workspace = server.mock(|when, then| { when.method(POST).path("/v1/workspaces"); then.status(200) .header("content-type", "application/json") - .body(r#"{"ok":true,"data":{"workspace_id":"ws_new","api_key":"rk_live_new"}}"#); + .body(r#"{"ok":true,"data":{"workspace_id":"ws_new","api_key":"rk_live_new","created_at":"2026-02-21T00:00:00Z"}}"#); }); let fresh_register = server.mock(|when, then| { when.method(POST) @@ -598,7 +588,7 @@ mod tests { .header("authorization", "Bearer rk_live_new"); then.status(200) .header("content-type", "application/json") - .body(r#"{"ok":true,"data":{"id":"a9","name":"lead","token":"at_live_9","workspace_id":"ws_new"}}"#); + .body(r#"{"ok":true,"data":{"id":"a9","name":"lead","token":"at_live_9","status":"online","created_at":"2026-02-21T00:00:00Z","workspace_id":"ws_new"}}"#); }); let dir = tempdir().unwrap(); @@ -638,7 +628,7 @@ mod tests { })); then.status(409) .header("content-type", "application/json") - .body(r#"{"error":"name_taken"}"#); + .body(r#"{"ok":false,"error":{"code":"name_taken","message":"name taken"}}"#); }); let dir = tempdir().unwrap(); @@ -677,7 +667,7 @@ mod tests { })); then.status(409) .header("content-type", "application/json") - .body(r#"{"error":"name_taken"}"#); + .body(r#"{"ok":false,"error":{"code":"name_taken","message":"name taken"}}"#); }); let second_success = server.mock(|when, then| { when.method(POST) @@ -686,7 +676,7 @@ mod tests { .body_contains("\"name\":\"lead-"); then.status(200) .header("content-type", "application/json") - .body(r#"{"ok":true,"data":{"id":"a10","name":"lead-suffixed","token":"at_live_10","workspace_id":"ws_cached"}}"#); + .body(r#"{"ok":true,"data":{"id":"a10","name":"lead-suffixed","token":"at_live_10","status":"online","created_at":"2026-02-21T00:00:00Z","workspace_id":"ws_cached"}}"#); }); let dir = tempdir().unwrap(); @@ -722,7 +712,7 @@ mod tests { .header("authorization", "Bearer rk_live_cached"); then.status(200) .header("content-type", "application/json") - .body(r#"{"ok":true,"data":{"token":"at_live_rotated"}}"#); + .body(r#"{"ok":true,"data":{"name":"lead","token":"at_live_rotated"}}"#); }); let dir = tempdir().unwrap(); @@ -755,7 +745,7 @@ mod tests { .header("authorization", "Bearer rk_live_cached"); then.status(404) .header("content-type", "application/json") - .body(r#"{"error":"not_found"}"#); + .body(r#"{"ok":false,"error":{"code":"not_found","message":"agent not found"}}"#); }); let register = server.mock(|when, then| { when.method(POST) @@ -763,7 +753,7 @@ mod tests { .header("authorization", "Bearer rk_live_cached"); then.status(200) .header("content-type", "application/json") - .body(r#"{"ok":true,"data":{"id":"a_new","name":"lead","token":"at_live_reregistered","workspace_id":"ws_cached"}}"#); + .body(r#"{"ok":true,"data":{"id":"a_new","name":"lead","token":"at_live_reregistered","status":"online","created_at":"2026-02-21T00:00:00Z","workspace_id":"ws_cached"}}"#); }); let dir = tempdir().unwrap(); diff --git a/src/main.rs b/src/main.rs index 8a59e8aa..dd5f9fb1 100644 --- a/src/main.rs +++ b/src/main.rs @@ -18,6 +18,7 @@ use helpers::{ use anyhow::{Context, Result}; use clap::{Parser, Subcommand, ValueEnum}; +use relaycast::{RelayCast, RelayCastOptions, WsEvent}; use serde::{Deserialize, Serialize}; use serde_json::{json, Value}; use tokio::{ @@ -3072,30 +3073,17 @@ async fn fetch_all_channels(paths: &RuntimePaths) -> Result> { let cached = store .load() .map_err(|_| anyhow::anyhow!("no cached credentials"))?; - let api_key = &cached.api_key; + let relay = RelayCast::new( + RelayCastOptions::new(cached.api_key.clone()).with_base_url(http_base.clone()), + ) + .context("failed to initialize relaycast client")?; - let client = reqwest::Client::new(); - let resp = client - .get(format!("{http_base}/v1/channels")) - .bearer_auth(api_key) - .send() + let channels = relay + .list_channels(false) .await .context("failed to fetch channels")?; - if !resp.status().is_success() { - anyhow::bail!("channels API returned {}", resp.status()); - } - let body: Value = resp.json().await?; - let channels = body - .as_array() - .or_else(|| body.get("channels").and_then(Value::as_array)) - .map(|arr| { - arr.iter() - .filter_map(|ch| ch.get("name").and_then(Value::as_str).map(String::from)) - .collect::>() - }) - .unwrap_or_default(); - Ok(channels) + Ok(channels.into_iter().map(|channel| channel.name).collect()) } fn channels_from_csv(raw: &str) -> Vec { @@ -3116,6 +3104,30 @@ enum RelaycastAgentEvent { /// Parse a raw WS JSON value into a `RelaycastAgentEvent` if it matches /// `agent.spawn_requested` or `agent.release_requested`. fn parse_relaycast_agent_event(value: &serde_json::Value) -> Option { + if let Ok(event) = serde_json::from_value::(value.clone()) { + match event { + WsEvent::AgentSpawnRequested(ev) => { + let name = ev.agent.name.trim(); + let cli = ev.agent.cli.trim(); + if !name.is_empty() && !cli.is_empty() { + return Some(RelaycastAgentEvent::Spawn { + name: name.to_string(), + cli: cli.to_string(), + }); + } + } + WsEvent::AgentReleaseRequested(ev) => { + let name = ev.agent.name.trim(); + if !name.is_empty() { + return Some(RelaycastAgentEvent::Release { + name: name.to_string(), + }); + } + } + _ => {} + } + } + let event_type = value.get("type")?.as_str()?; let agent = value.get("agent")?; @@ -3139,17 +3151,7 @@ fn parse_relaycast_agent_event(value: &serde_json::Value) -> Option bool { - match cmd_event.handler_agent_id.as_deref() { - Some(handler_id) => handler_id == self_agent_id, - None => { - tracing::warn!( - command = %cmd_event.command, - invoked_by = %cmd_event.invoked_by, - "command has no handler_agent_id; accepting by default (multi-broker setups should scope commands)" - ); - true - } - } + cmd_event.handler_agent_id == self_agent_id } fn env_flag_enabled(name: &str) -> bool { diff --git a/src/message_bridge.rs b/src/message_bridge.rs index 1e44259f..612d82a9 100644 --- a/src/message_bridge.rs +++ b/src/message_bridge.rs @@ -1,3 +1,4 @@ +use relaycast::WsEvent; use serde_json::{Map, Value}; use crate::types::{ @@ -9,6 +10,10 @@ use crate::types::{ /// /// Supports both current top-level events and older payload-wrapped events. pub fn map_ws_event(value: &Value) -> Option { + if let Some(mapped) = map_ws_event_from_sdk(value) { + return Some(mapped); + } + let event_type = value.get("type")?.as_str()?; let kind = parse_inbound_kind(event_type)?; @@ -62,6 +67,10 @@ pub fn map_ws_event(value: &Value) -> Option { /// Relaycast emits these when an agent invokes a registered slash command /// (e.g. `/spawn`, `/release`). The `parameters` field carries structured data. pub fn map_ws_broker_command(value: &Value) -> Option { + if let Some(mapped) = map_ws_broker_command_from_sdk(value) { + return Some(mapped); + } + let event_type = value.get("type")?.as_str()?; if event_type != "command.invoked" { return None; @@ -84,7 +93,7 @@ pub fn map_ws_broker_command(value: &Value) -> Option { .get("handler") .and_then(|handler| handler.get("id")) .and_then(scalar_to_string) - }); + })?; let params = value.get("parameters")?; @@ -108,6 +117,126 @@ pub fn map_ws_broker_command(value: &Value) -> Option { }) } +fn map_ws_event_from_sdk(value: &Value) -> Option { + let event: WsEvent = serde_json::from_value(value.clone()).ok()?; + + match event { + WsEvent::MessageCreated(e) => Some(InboundRelayEvent { + event_id: e.message.id, + kind: InboundKind::MessageCreated, + from: e.message.agent_name, + sender_agent_id: value + .pointer("/message/agent_id") + .and_then(Value::as_str) + .map(String::from), + sender_kind: parse_sender_kind(value), + target: normalize_channel_name(&e.channel), + text: e.message.text, + thread_id: None, + priority: RelayPriority::P3, + }), + WsEvent::DmReceived(e) => Some(InboundRelayEvent { + event_id: e.message.id, + kind: InboundKind::DmReceived, + from: e.message.agent_name, + sender_agent_id: value + .pointer("/message/agent_id") + .and_then(Value::as_str) + .map(String::from), + sender_kind: parse_sender_kind(value), + target: e.conversation_id, + text: e.message.text, + thread_id: None, + priority: RelayPriority::P2, + }), + WsEvent::GroupDmReceived(e) => Some(InboundRelayEvent { + event_id: e.message.id, + kind: InboundKind::GroupDmReceived, + from: e.message.agent_name, + sender_agent_id: value + .pointer("/message/agent_id") + .and_then(Value::as_str) + .map(String::from), + sender_kind: parse_sender_kind(value), + target: e.conversation_id, + text: e.message.text, + thread_id: None, + priority: RelayPriority::P3, + }), + WsEvent::ThreadReply(e) => Some(InboundRelayEvent { + event_id: e.message.id, + kind: InboundKind::ThreadReply, + from: e.message.agent_name, + sender_agent_id: value + .pointer("/message/agent_id") + .and_then(Value::as_str) + .map(String::from), + sender_kind: parse_sender_kind(value), + target: "thread".to_string(), + text: e.message.text, + thread_id: Some(e.parent_id), + priority: RelayPriority::P3, + }), + WsEvent::AgentOnline(e) => { + let from = e.agent.name; + Some(InboundRelayEvent { + event_id: format!("presence-agent.online-{from}"), + kind: InboundKind::Presence, + from, + sender_agent_id: None, + sender_kind: SenderKind::Agent, + target: String::new(), + text: String::new(), + thread_id: None, + priority: RelayPriority::P4, + }) + } + WsEvent::AgentOffline(e) => { + let from = e.agent.name; + Some(InboundRelayEvent { + event_id: format!("presence-agent.offline-{from}"), + kind: InboundKind::Presence, + from, + sender_agent_id: None, + sender_kind: SenderKind::Agent, + target: String::new(), + text: String::new(), + thread_id: None, + priority: RelayPriority::P4, + }) + } + _ => None, + } +} + +fn map_ws_broker_command_from_sdk(value: &Value) -> Option { + let event: WsEvent = serde_json::from_value(value.clone()).ok()?; + let invoked = match event { + WsEvent::CommandInvoked(invoked) => invoked, + _ => return None, + }; + + let command_name = invoked.command.trim_start_matches('/'); + let params = Value::Object(invoked.parameters?); + let payload = if command_name == "spawn" || command_name.starts_with("spawn-") { + let spawn: SpawnParams = serde_json::from_value(params).ok()?; + BrokerCommandPayload::Spawn(spawn) + } else if command_name == "release" || command_name.starts_with("release-") { + let release: ReleaseParams = serde_json::from_value(params).ok()?; + BrokerCommandPayload::Release(release) + } else { + return None; + }; + + Some(BrokerCommandEvent { + command: invoked.command, + channel: invoked.channel, + invoked_by: invoked.invoked_by, + handler_agent_id: invoked.handler_agent_id, + payload, + }) +} + fn parse_inbound_kind(event_type: &str) -> Option { match event_type { "message.created" | "message.received" | "message.new" => Some(InboundKind::MessageCreated), @@ -121,6 +250,14 @@ fn parse_inbound_kind(event_type: &str) -> Option { } } +fn normalize_channel_name(raw: &str) -> String { + if raw.starts_with('#') { + raw.to_string() + } else { + format!("#{raw}") + } +} + fn extract_presence_sender(value: &Value) -> Option { let payload = value.get("payload"); for candidate in [ @@ -667,6 +804,7 @@ mod tests { "command": "/spawn", "channel": "general", "invoked_by": "147298826957365248", + "handler_agent_id": "147305428879515648", "args": null, "parameters": { "name": "Worker1", @@ -679,7 +817,7 @@ mod tests { assert_eq!(cmd.command, "/spawn"); assert_eq!(cmd.channel, "general"); assert_eq!(cmd.invoked_by, "147298826957365248"); - assert_eq!(cmd.handler_agent_id, None); + assert_eq!(cmd.handler_agent_id, "147305428879515648"); assert_eq!( cmd.payload, crate::types::BrokerCommandPayload::Spawn(crate::types::SpawnParams { @@ -697,6 +835,7 @@ mod tests { "command": "/release", "channel": "general", "invoked_by": "147298826957365248", + "handler_agent_id": "147305428879515648", "args": null, "parameters": { "name": "Worker1" @@ -719,6 +858,7 @@ mod tests { "command": "/spawn-19c4c7f8150", "channel": "general", "invoked_by": "147298826957365248", + "handler_agent_id": "147305428879515648", "parameters": { "name": "Worker2", "cli": "codex", @@ -744,6 +884,7 @@ mod tests { "command": "/release-19c4c7f8150", "channel": "general", "invoked_by": "147298826957365248", + "handler_agent_id": "147305428879515648", "parameters": { "name": "Worker2" } @@ -773,7 +914,19 @@ mod tests { })) .expect("should map command.invoked handler agent id"); - assert_eq!(cmd.handler_agent_id.as_deref(), Some("147305428879515648")); + assert_eq!(cmd.handler_agent_id, "147305428879515648"); + } + + #[test] + fn command_invoked_ignores_missing_handler_agent_id() { + assert!(map_ws_broker_command(&json!({ + "type": "command.invoked", + "command": "/spawn", + "channel": "general", + "invoked_by": "123", + "parameters": { "name": "x", "cli": "y" } + })) + .is_none()); } #[test] diff --git a/src/relaycast_ws.rs b/src/relaycast_ws.rs index 2f922bf1..24fff085 100644 --- a/src/relaycast_ws.rs +++ b/src/relaycast_ws.rs @@ -1,13 +1,14 @@ use std::{collections::HashSet, sync::Arc, time::Duration}; -use anyhow::Result; -use futures::{SinkExt, StreamExt}; +use anyhow::{Context, Result}; use parking_lot::Mutex; -use rand::Rng; -use reqwest::Url; +use relaycast::{ + AgentClient, MessageListQuery, RelayCast, RelayCastOptions, ReleaseAgentRequest, + SpawnAgentRequest, WsLifecycleEvent, +}; +use serde::Serialize; use serde_json::{json, Value}; -use tokio::sync::mpsc; -use tokio_tungstenite::tungstenite::Message; +use tokio::sync::{broadcast::error::RecvError, mpsc}; use crate::{ auth::{AuthClient, CredentialCache}, @@ -55,96 +56,110 @@ impl RelaycastWsClient { mut control_rx: mpsc::Receiver, events: EventEmitter, ) { - let mut attempt = 0u32; + const INITIAL_RETRY_DELAY: Duration = Duration::from_secs(2); let mut has_connected = false; loop { let token = self.token.lock().clone(); - let ws_url = match build_ws_stream_url(&self.base_url, &token) { - Ok(url) => url, + let mut agent = match AgentClient::new(token, Some(self.base_url.clone())) { + Ok(agent) => agent, Err(error) => { tracing::warn!( target = "relay_broker::ws", base_url = %self.base_url, error = %error, - "invalid websocket base url" + "failed to construct relaycast ws client" ); - attempt += 1; - tokio::time::sleep(reconnect_delay(attempt)).await; + tokio::select! { + _ = tokio::time::sleep(INITIAL_RETRY_DELAY) => {} + ctrl = control_rx.recv() => { + if matches!(ctrl, Some(WsControl::Shutdown) | None) { + return; + } + } + } continue; } }; - let ws_endpoint = ws_url - .split_once('?') - .map(|(prefix, _)| prefix) - .unwrap_or(&ws_url); - match tokio_tungstenite::connect_async(&ws_url).await { - Ok((ws, _)) => { + match agent.connect().await { + Ok(()) => { let status = if has_connected { "reconnected" } else { "connected" }; has_connected = true; - events.emit("connection", json!({"status":status})); - let _ = inbound_tx - .send(json!({ - "type":"broker.connection", - "payload":{"status":status} - })) - .await; - attempt = 0; - let (mut write, mut read) = ws.split(); + emit_connection_status(&events, &inbound_tx, status).await; + let mut connected = true; let channels = self.active_subscriptions(); if !channels.is_empty() { - match write - .send(Message::Text( - json!({"type":"subscribe","channels":channels}).to_string(), - )) - .await - { - Ok(()) => { - for channel in &channels { - let _ = inbound_tx - .send(json!({ - "type":"broker.channel_join", - "payload":{"channel":channel} - })) - .await; - } + if let Err(error) = agent.subscribe_channels(channels.clone()).await { + tracing::warn!( + target = "relay_broker::ws", + error = %error, + "failed to subscribe channels" + ); + } else { + for channel in &channels { + let _ = inbound_tx + .send(json!({ + "type":"broker.channel_join", + "payload":{"channel":channel} + })) + .await; } - Err(error) => { + } + } + + let mut event_rx = match agent.subscribe_events() { + Ok(rx) => rx, + Err(error) => { + tracing::warn!( + target = "relay_broker::ws", + error = %error, + "failed to subscribe to relaycast events" + ); + agent.disconnect().await; + if let Err(error) = self.refresh_token().await { tracing::warn!( target = "relay_broker::ws", error = %error, - "batched channel subscribe failed; falling back to per-channel subscribe" + "token refresh failed" ); - for channel in &channels { - match write - .send(Message::Text( - json!({"type":"subscribe","channel":channel}) - .to_string(), - )) - .await - { - Ok(()) => { - let _ = inbound_tx - .send(json!({ - "type":"broker.channel_join", - "payload":{"channel":channel} - })) - .await; - } - Err(error) => { - tracing::warn!(target = "relay_broker::ws", channel = %channel, error = %error, "failed to subscribe channel"); - } + } + tokio::select! { + _ = tokio::time::sleep(INITIAL_RETRY_DELAY) => {} + ctrl = control_rx.recv() => { + if matches!(ctrl, Some(WsControl::Shutdown) | None) { + return; } } } + continue; } - } + }; + let mut lifecycle_rx = match agent.subscribe_lifecycle() { + Ok(rx) => rx, + Err(error) => { + tracing::warn!( + target = "relay_broker::ws", + error = %error, + "failed to subscribe to relaycast lifecycle events" + ); + agent.disconnect().await; + tokio::select! { + _ = tokio::time::sleep(INITIAL_RETRY_DELAY) => {} + ctrl = control_rx.recv() => { + if matches!(ctrl, Some(WsControl::Shutdown) | None) { + return; + } + } + } + continue; + } + }; let mut shutdown = false; while !shutdown { @@ -152,33 +167,97 @@ impl RelaycastWsClient { ctrl = control_rx.recv() => { match ctrl { Some(WsControl::Shutdown) | None => { - let _ = write.close().await; + agent.disconnect().await; shutdown = true; } } } - frame = read.next() => { - match frame { - Some(Ok(Message::Text(text))) => { - if let Ok(value) = serde_json::from_str::(&text) { - let _ = inbound_tx.send(value).await; - } else { - tracing::debug!( - target = "relay_broker::ws", - raw = %text, - "ignoring non-json text frame" - ); + ws_event = event_rx.recv() => { + match ws_event { + Ok(event) => { + match serde_json::to_value(event) { + Ok(value) => { + let _ = inbound_tx.send(value).await; + } + Err(error) => { + tracing::warn!( + target = "relay_broker::ws", + error = %error, + "failed to serialize relaycast ws event" + ); + } } } - Some(Ok(Message::Binary(_))) => {} - Some(Ok(Message::Close(_))) | None => { + Err(RecvError::Lagged(skipped)) => { + tracing::warn!( + target = "relay_broker::ws", + skipped, + "dropped lagged ws events" + ); + } + Err(RecvError::Closed) => { break; } - Some(Err(error)) => { - tracing::warn!(target = "relay_broker::ws", error = %error, "ws read error"); + } + } + lifecycle_event = lifecycle_rx.recv() => { + match lifecycle_event { + Ok(WsLifecycleEvent::Open) => { + if !connected { + connected = true; + has_connected = true; + emit_connection_status(&events, &inbound_tx, "reconnected").await; + } + } + Ok(WsLifecycleEvent::Close) => { + if connected { + connected = false; + emit_connection_status(&events, &inbound_tx, "disconnected").await; + } + } + Ok(WsLifecycleEvent::Reconnecting { attempt }) => { + tracing::debug!( + target = "relay_broker::ws", + attempt, + "relaycast websocket reconnecting" + ); + } + Ok(WsLifecycleEvent::Error(error)) => { + tracing::warn!( + target = "relay_broker::ws", + error = %error, + "relaycast websocket lifecycle error" + ); + match self.refresh_token().await { + Ok(()) => { + let token = self.token.lock().clone(); + if let Err(error) = agent.set_token(token).await { + tracing::warn!( + target = "relay_broker::ws", + error = %error, + "failed to update websocket token after refresh" + ); + } + } + Err(error) => { + tracing::warn!( + target = "relay_broker::ws", + error = %error, + "token refresh failed" + ); + } + } + } + Err(RecvError::Lagged(skipped)) => { + tracing::warn!( + target = "relay_broker::ws", + skipped, + "dropped lagged lifecycle events" + ); + } + Err(RecvError::Closed) => { break; } - _ => {} } } } @@ -187,29 +266,31 @@ impl RelaycastWsClient { if shutdown { break; } + + agent.disconnect().await; } Err(error) => { tracing::warn!( target = "relay_broker::ws", - endpoint = %ws_endpoint, + base_url = %self.base_url, error = %error, "ws connect failed" ); } } - events.emit("connection", json!({"status":"disconnected"})); - let _ = inbound_tx - .send(json!({ - "type":"broker.connection", - "payload":{"status":"disconnected"} - })) - .await; - attempt += 1; if let Err(error) = self.refresh_token().await { tracing::warn!(target = "relay_broker::ws", error = %error, "token refresh failed"); } - tokio::time::sleep(reconnect_delay(attempt)).await; + emit_connection_status(&events, &inbound_tx, "disconnected").await; + tokio::select! { + _ = tokio::time::sleep(INITIAL_RETRY_DELAY) => {} + ctrl = control_rx.recv() => { + if matches!(ctrl, Some(WsControl::Shutdown) | None) { + return; + } + } + } } } @@ -222,13 +303,26 @@ impl RelaycastWsClient { } } +async fn emit_connection_status( + events: &EventEmitter, + inbound_tx: &mpsc::Sender, + status: &str, +) { + events.emit("connection", json!({ "status": status })); + let _ = inbound_tx + .send(json!({ + "type":"broker.connection", + "payload":{"status": status} + })) + .await; +} + /// HTTP client for publishing messages to the Relaycast REST API. /// /// Used by the broker to asynchronously forward messages to Relaycast when the /// target is not a local worker. #[derive(Clone)] pub struct RelaycastHttpClient { - http: reqwest::Client, base_url: String, api_key: String, agent_token: Arc>>, @@ -242,7 +336,6 @@ impl RelaycastHttpClient { agent_name: impl Into, ) -> Self { Self { - http: reqwest::Client::new(), base_url: base_url.into(), api_key: api_key.into(), agent_token: Arc::new(Mutex::new(None)), @@ -250,6 +343,13 @@ impl RelaycastHttpClient { } } + fn relay_client(&self) -> Result { + RelayCast::new( + RelayCastOptions::new(self.api_key.clone()).with_base_url(self.base_url.clone()), + ) + .context("failed to initialize relaycast workspace client") + } + /// Register the broker agent via the spawn endpoint (which rotates the token /// if the agent already exists, avoiding ghost duplicates). async fn ensure_token(&self) -> Result { @@ -260,172 +360,145 @@ impl RelaycastHttpClient { } } - // Use /v1/agents/spawn instead of /v1/agents — spawn rotates the token - // on conflict rather than returning 409, preventing ghost Broker-* agents. - let url = format!("{}/v1/agents/spawn", self.base_url); - let res = self - .http - .post(&url) - .header("Authorization", format!("Bearer {}", self.api_key)) - .json(&serde_json::json!({ - "name": self.agent_name, - "cli": "broker", - "task": "relay broker engine" - })) - .send() - .await?; - - let status = res.status(); - let body: Value = res.json().await?; - - if !status.is_success() { - anyhow::bail!( - "relaycast spawn/register failed ({}): {}", - status, - serde_json::to_string(&body).unwrap_or_default() - ); - } - - let token = body - .pointer("/data/token") - .or_else(|| body.get("token")) - .and_then(Value::as_str) - .map(String::from) - .ok_or_else(|| anyhow::anyhow!("no token in spawn response"))?; - + let relay = self.relay_client()?; + let response = relay + .spawn_agent(SpawnAgentRequest { + name: self.agent_name.clone(), + cli: "broker".to_string(), + task: "relay broker engine".to_string(), + channel: None, + persona: None, + metadata: None, + }) + .await + .context("relaycast spawn/register failed")?; + + let token = response.token; *self.agent_token.lock() = Some(token.clone()); Ok(token) } + fn build_agent_client(&self, token: String) -> Result { + AgentClient::new(token, Some(self.base_url.clone())) + .context("failed to initialize relaycast agent client") + } + + async fn with_agent_client(&self) -> Result { + let token = self.ensure_token().await?; + self.build_agent_client(token) + } + /// Mark the broker agent as offline via the release endpoint. /// Called during graceful shutdown to prevent ghost agents in the dashboard. pub async fn mark_offline(&self) -> Result<()> { - let url = format!("{}/v1/agents/release", self.base_url); - let res = self - .http - .post(&url) - .header("Authorization", format!("Bearer {}", self.api_key)) - .json(&serde_json::json!({ - "name": self.agent_name - })) - .send() - .await?; - if !res.status().is_success() { - let status = res.status(); - let body = res.text().await.unwrap_or_default(); - tracing::warn!(status = %status, "failed to mark broker offline: {}", body); - } else { - tracing::info!(agent = %self.agent_name, "marked broker agent offline"); + let relay = self.relay_client()?; + let result = relay + .release_agent(ReleaseAgentRequest { + name: self.agent_name.clone(), + reason: Some("broker_shutdown".to_string()), + delete_agent: Some(false), + }) + .await; + + match result { + Ok(_) => { + tracing::info!(agent = %self.agent_name, "marked broker agent offline"); + } + Err(error) => { + tracing::warn!(error = %error, "failed to mark broker offline"); + } } + + *self.agent_token.lock() = None; Ok(()) } /// Send a direct message to a named agent via the Relaycast REST API. pub async fn send_dm(&self, to: &str, text: &str) -> Result<()> { - let token = self.ensure_token().await?; - let url = format!("{}/v1/dm", self.base_url); - let res = self - .http - .post(&url) - .header("Authorization", format!("Bearer {}", token)) - .json(&serde_json::json!({ "to": to, "text": text })) - .send() - .await?; - if !res.status().is_success() { - let status = res.status(); - let body = res.text().await.unwrap_or_default(); - anyhow::bail!("relaycast send_dm failed ({}): {}", status, body); - } + let agent = self.with_agent_client().await?; + agent + .dm(to, text, None) + .await + .context("relaycast send_dm failed")?; Ok(()) } /// Post a message to a channel via the Relaycast REST API. pub async fn send_to_channel(&self, channel: &str, text: &str) -> Result<()> { - let token = self.ensure_token().await?; + let agent = self.with_agent_client().await?; let ch = channel.strip_prefix('#').unwrap_or(channel); - let url = format!("{}/v1/channels/{}/messages", self.base_url, ch); - let res = self - .http - .post(&url) - .header("Authorization", format!("Bearer {}", token)) - .json(&serde_json::json!({ "text": text })) - .send() - .await?; - if !res.status().is_success() { - let status = res.status(); - let body = res.text().await.unwrap_or_default(); - anyhow::bail!("relaycast send_to_channel failed ({}): {}", status, body); - } + agent + .send(ch, text, None, None, None) + .await + .context("relaycast send_to_channel failed")?; Ok(()) } /// Fetch recent DM history for an agent via the Relaycast REST API. pub async fn get_dms(&self, agent: &str, limit: usize) -> Result> { - let token = self.ensure_token().await?; - let url = format!("{}/v1/dm/{}?limit={}", self.base_url, agent, limit); - let res = self - .http - .get(&url) - .header("Authorization", format!("Bearer {}", token)) - .send() - .await?; - if !res.status().is_success() { - let status = res.status(); - let body = res.text().await.unwrap_or_default(); - tracing::warn!(status = %status, "relaycast get_dms failed: {}", body); + let agent_client = self.with_agent_client().await?; + let conversations = match agent_client.dm_conversations().await { + Ok(conversations) => conversations, + Err(error) => { + tracing::warn!(error = %error, "relaycast get_dms failed to list conversations"); + return Ok(vec![]); + } + }; + + let Some(conversation) = conversations.into_iter().find(|conv| { + conv.participants + .iter() + .any(|participant| participant == agent) + }) else { return Ok(vec![]); - } - let body: Value = res.json().await?; - // Try common response shapes: { data: { messages: [...] } } or { messages: [...] } or [...] - let messages = body - .pointer("/data/messages") - .or_else(|| body.get("messages")) - .and_then(Value::as_array) - .cloned() - .unwrap_or_else(|| { - if body.is_array() { - body.as_array().cloned().unwrap_or_default() - } else { - vec![] - } - }); - Ok(messages) + }; + + let messages = match agent_client + .dm_messages( + &conversation.id, + Some(MessageListQuery { + limit: Some(clamp_limit(limit)), + ..Default::default() + }), + ) + .await + { + Ok(messages) => messages, + Err(error) => { + tracing::warn!( + error = %error, + conversation_id = %conversation.id, + "relaycast get_dms failed to fetch messages" + ); + return Ok(vec![]); + } + }; + + to_json_values(messages) } /// Fetch recent message history from a channel via the Relaycast REST API. pub async fn get_channel_messages(&self, channel: &str, limit: usize) -> Result> { - let token = self.ensure_token().await?; + let agent = self.with_agent_client().await?; let ch = channel.strip_prefix('#').unwrap_or(channel); - let url = format!( - "{}/v1/channels/{}/messages?limit={}", - self.base_url, ch, limit - ); - let res = self - .http - .get(&url) - .header("Authorization", format!("Bearer {}", token)) - .send() - .await?; - if !res.status().is_success() { - let status = res.status(); - let body = res.text().await.unwrap_or_default(); - tracing::warn!(status = %status, "relaycast get_channel_messages failed: {}", body); - return Ok(vec![]); - } - let body: Value = res.json().await?; - let messages = body - .pointer("/data/messages") - .or_else(|| body.get("messages")) - .and_then(Value::as_array) - .cloned() - .unwrap_or_else(|| { - if body.is_array() { - body.as_array().cloned().unwrap_or_default() - } else { - vec![] - } - }); - Ok(messages) + let messages = match agent + .messages( + ch, + Some(MessageListQuery { + limit: Some(clamp_limit(limit)), + ..Default::default() + }), + ) + .await + { + Ok(messages) => messages, + Err(error) => { + tracing::warn!(error = %error, channel = %ch, "relaycast get_channel_messages failed"); + return Ok(vec![]); + } + }; + + to_json_values(messages) } /// Smart send: routes to channel or DM based on `#` prefix. @@ -438,92 +511,23 @@ impl RelaycastHttpClient { } } -pub fn build_ws_stream_url(base_url: &str, token: &str) -> Result { - let raw = base_url.trim(); - let normalized = if raw.starts_with("wss://") || raw.starts_with("ws://") { - raw.to_string() - } else if let Some(rest) = raw.strip_prefix("https://") { - format!("wss://{rest}") - } else if let Some(rest) = raw.strip_prefix("http://") { - format!("ws://{rest}") - } else { - format!("wss://{raw}") - }; - - let mut url = Url::parse(&normalized)?; - let path = url.path().trim_end_matches('/').to_string(); - - let final_path = if path.is_empty() { - "/v1/stream".to_string() - } else if path.ends_with("/v1/stream") || path.ends_with("/stream") { - path - } else if path.ends_with("/v1") { - format!("{path}/stream") - } else { - format!("{path}/v1/stream") - }; - url.set_path(&final_path); - - let mut preserved: Vec<(String, String)> = Vec::new(); - for (k, v) in url.query_pairs() { - if k != "token" { - preserved.push((k.into_owned(), v.into_owned())); - } - } - { - let mut pairs = url.query_pairs_mut(); - pairs.clear(); - for (k, v) in preserved { - pairs.append_pair(&k, &v); - } - pairs.append_pair("token", token); - } - - Ok(url.to_string()) +fn clamp_limit(limit: usize) -> i32 { + std::cmp::min(limit, i32::MAX as usize) as i32 } -pub fn reconnect_delay(attempt: u32) -> Duration { - let base_ms = (1_000u64).saturating_mul(2u64.saturating_pow(attempt.saturating_sub(1))); - let bounded = base_ms.min(30_000); - let jitter = rand::thread_rng().gen_range(0..=250); - Duration::from_millis(bounded + jitter) +fn to_json_values(items: Vec) -> Result> +where + T: Serialize, +{ + items + .into_iter() + .map(|item| serde_json::to_value(item).context("failed to serialize relaycast response")) + .collect() } #[cfg(test)] mod tests { - use super::{build_ws_stream_url, reconnect_delay, RelaycastHttpClient}; - - #[test] - fn backoff_with_jitter_stays_bounded() { - let d1 = reconnect_delay(1); - let d10 = reconnect_delay(10); - assert!(d1.as_millis() >= 1000); - assert!(d1.as_millis() <= 1250); - assert!(d10.as_millis() >= 30_000); - assert!(d10.as_millis() <= 30_250); - } - - #[test] - fn builds_stream_url_from_host_base() { - let url = build_ws_stream_url("https://api.relaycast.dev", "tok_1").unwrap(); - assert_eq!(url, "wss://api.relaycast.dev/v1/stream?token=tok_1"); - } - - #[test] - fn avoids_duplicate_v1_when_base_already_has_v1() { - let url = build_ws_stream_url("https://api.relaycast.dev/v1", "tok_2").unwrap(); - assert_eq!(url, "wss://api.relaycast.dev/v1/stream?token=tok_2"); - } - - #[test] - fn preserves_custom_stream_path_and_query() { - let url = - build_ws_stream_url("wss://rt.relaycast.dev/stream?client=broker", "tok_3").unwrap(); - assert_eq!( - url, - "wss://rt.relaycast.dev/stream?client=broker&token=tok_3" - ); - } + use super::RelaycastHttpClient; #[test] fn http_client_constructs_with_correct_fields() { @@ -542,17 +546,4 @@ mod tests { *client.agent_token.lock() = Some("tok_123".to_string()); assert_eq!(clone.agent_token.lock().as_deref(), Some("tok_123")); } - - #[test] - fn keeps_existing_stream_endpoint_and_replaces_token() { - let url = build_ws_stream_url( - "wss://api.relaycast.dev/v1/stream?token=old&mode=fast", - "new_tok", - ) - .unwrap(); - assert_eq!( - url, - "wss://api.relaycast.dev/v1/stream?mode=fast&token=new_tok" - ); - } } diff --git a/src/types.rs b/src/types.rs index e0a6e63d..6778a2e1 100644 --- a/src/types.rs +++ b/src/types.rs @@ -64,8 +64,8 @@ pub struct BrokerCommandEvent { pub channel: String, /// Agent ID or name of the invoker. pub invoked_by: String, - /// Target command handler agent ID, when provided by Relaycast. - pub handler_agent_id: Option, + /// Target command handler agent ID provided by Relaycast. + pub handler_agent_id: String, /// Structured parameters for the command. pub payload: BrokerCommandPayload, }