{
  "checkedAt": "2026-09-21",
  "baselines": {
    "roleplay-harness": "fa41d220d48327e58d994f936517b23f2f15f658",
    "worldbook-service": "9fd897eafcb23c3e9db6e0a8fdc6bf859fd7753b"
  },
  "scope": "固定源码实现与接线；非生产部署验证",
  "citations": [
    {
      "chapter": "product-agent-v2",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "adapters/agent-router/dispatch.ts",
      "line": 1160,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/adapters/agent-router/dispatch.ts#L1160"
    },
    {
      "chapter": "product-agent-v2",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/planning/runtime.ts",
      "line": 462,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/planning/runtime.ts#L462"
    },
    {
      "chapter": "product-agent-v2",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/planning/runtime.ts",
      "line": 570,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/planning/runtime.ts#L570"
    },
    {
      "chapter": "product-agent-v2",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/planning/runtime.ts",
      "line": 701,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/planning/runtime.ts#L701"
    },
    {
      "chapter": "product-agent-v2",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "adapters/agent-router/dispatch.ts",
      "line": 298,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/adapters/agent-router/dispatch.ts#L298"
    },
    {
      "chapter": "product-agent-v2",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "adapters/agent-router/dispatch.ts",
      "line": 1177,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/adapters/agent-router/dispatch.ts#L1177"
    },
    {
      "chapter": "product-agent-v2",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/planning/agentic-v2.ts",
      "line": 315,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/planning/agentic-v2.ts#L315"
    },
    {
      "chapter": "product-agent-v2",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/src/modules/memory/advisory.ts",
      "line": 218,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/src/modules/memory/advisory.ts#L218"
    },
    {
      "chapter": "product-agent-v2",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/integrations/roleplay-axon-adapter.ts",
      "line": 425,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/integrations/roleplay-axon-adapter.ts#L425"
    },
    {
      "chapter": "product-agent-v2",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/planning/agentic-v2.ts",
      "line": 464,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/planning/agentic-v2.ts#L464"
    },
    {
      "chapter": "product-agent-v2",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/planning/agentic-v2.ts",
      "line": 1083,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/planning/agentic-v2.ts#L1083"
    },
    {
      "chapter": "product-agent-v2",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/sdk/src/registry.ts",
      "line": 19,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/sdk/src/registry.ts#L19"
    },
    {
      "chapter": "product-agent-v2",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/planning/agentic-v2.ts",
      "line": 655,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/planning/agentic-v2.ts#L655"
    },
    {
      "chapter": "product-agent-v2",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/planning/agentic-v2.ts",
      "line": 933,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/planning/agentic-v2.ts#L933"
    },
    {
      "chapter": "product-agent-v2",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/src/modules/memory/advisory.ts",
      "line": 18,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/src/modules/memory/advisory.ts#L18"
    },
    {
      "chapter": "product-agent-v2",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/src/modules/memory/advisory.ts",
      "line": 244,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/src/modules/memory/advisory.ts#L244"
    },
    {
      "chapter": "product-agent-v2",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/planning/agentic-v2.ts",
      "line": 843,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/planning/agentic-v2.ts#L843"
    },
    {
      "chapter": "product-agent-v2",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/planning/agentic-v2.ts",
      "line": 607,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/planning/agentic-v2.ts#L607"
    },
    {
      "chapter": "product-agent-v2",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/planning/agentic-v2.ts",
      "line": 380,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/planning/agentic-v2.ts#L380"
    },
    {
      "chapter": "product-agent-v2",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/planning/agentic-v2.ts",
      "line": 514,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/planning/agentic-v2.ts#L514"
    },
    {
      "chapter": "product-agent-v2",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/planning/runtime.ts",
      "line": 84,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/planning/runtime.ts#L84"
    },
    {
      "chapter": "product-agent-v2",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "adapters/axon/client.ts",
      "line": 697,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/adapters/axon/client.ts#L697"
    },
    {
      "chapter": "product-agent-v2",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/planning/agentic-v2.ts",
      "line": 758,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/planning/agentic-v2.ts#L758"
    },
    {
      "chapter": "product-agent-v2",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/src/modules/memory/advisory.ts",
      "line": 197,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/src/modules/memory/advisory.ts#L197"
    },
    {
      "chapter": "product-agent-v2",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/planning/agentic-v2.ts",
      "line": 470,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/planning/agentic-v2.ts#L470"
    },
    {
      "chapter": "product-agent-v2",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/planning/prompt-manager.ts",
      "line": 21,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/planning/prompt-manager.ts#L21"
    },
    {
      "chapter": "product-agent-v2",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/planning/agentic-v2.ts",
      "line": 538,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/planning/agentic-v2.ts#L538"
    },
    {
      "chapter": "product-agent-v2",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/planning/agentic-v2.ts",
      "line": 220,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/planning/agentic-v2.ts#L220"
    },
    {
      "chapter": "product-agent-v2",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/server.ts",
      "line": 114,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/server.ts#L114"
    },
    {
      "chapter": "product-agent-v2",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/server.ts",
      "line": 808,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/server.ts#L808"
    },
    {
      "chapter": "product-agent-v2",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/server.ts",
      "line": 235,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/server.ts#L235"
    },
    {
      "chapter": "product-agent-v2",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "adapters/agent-router/dispatch.ts",
      "line": 957,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/adapters/agent-router/dispatch.ts#L957"
    },
    {
      "chapter": "product-agent-v2",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/integrations/roleplay-axon-adapter.ts",
      "line": 439,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/integrations/roleplay-axon-adapter.ts#L439"
    },
    {
      "chapter": "product-agent-v2",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/planning/runtime.ts",
      "line": 498,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/planning/runtime.ts#L498"
    },
    {
      "chapter": "product-agent-v2",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "adapters/agent-router/dispatch.ts",
      "line": 482,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/adapters/agent-router/dispatch.ts#L482"
    },
    {
      "chapter": "product-agent-v2",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "docs/integrations/chat-service-agent-router.md",
      "line": null,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/docs/integrations/chat-service-agent-router.md"
    },
    {
      "chapter": "product-agent-v2",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "docs/scenario-configuration.md",
      "line": null,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/docs/scenario-configuration.md"
    },
    {
      "chapter": "product-agent-v2",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/planning/agentic-v2.ts",
      "line": 102,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/planning/agentic-v2.ts#L102"
    },
    {
      "chapter": "product-agent-v2",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/planning/agentic-v2.ts",
      "line": 957,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/planning/agentic-v2.ts#L957"
    },
    {
      "chapter": "product-agent-v2",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/sdk/src/tasks.ts",
      "line": 23,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/sdk/src/tasks.ts#L23"
    },
    {
      "chapter": "product-agent-v2",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "adapters/agent-router/dispatch.ts",
      "line": 1160,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/adapters/agent-router/dispatch.ts#L1160"
    },
    {
      "chapter": "product-agent-v2",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/planning/runtime.ts",
      "line": 350,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/planning/runtime.ts#L350"
    },
    {
      "chapter": "product-agent-v2",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/planning/agentic-v2.ts",
      "line": 792,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/planning/agentic-v2.ts#L792"
    },
    {
      "chapter": "product-agent-v2",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/planning/prompt-manager.ts",
      "line": 75,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/planning/prompt-manager.ts#L75"
    },
    {
      "chapter": "product-agent-v2",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/src/modules/memory/advisory.ts",
      "line": 218,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/src/modules/memory/advisory.ts#L218"
    },
    {
      "chapter": "product-agent-v2",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/server.ts",
      "line": 114,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/server.ts#L114"
    },
    {
      "chapter": "product-agent-v2",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "adapters/agent-router/dispatch.ts",
      "line": 934,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/adapters/agent-router/dispatch.ts#L934"
    },
    {
      "chapter": "product-agent-v2",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "config/scenarios/agentic-v2-luna-gemini38-pov-v1.json",
      "line": null,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/config/scenarios/agentic-v2-luna-gemini38-pov-v1.json"
    },
    {
      "chapter": "product-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "adapters/agent-router/dispatch.ts",
      "line": 1161,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/adapters/agent-router/dispatch.ts#L1161"
    },
    {
      "chapter": "product-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/src/modules/story/world.ts",
      "line": 39,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/src/modules/story/world.ts#L39"
    },
    {
      "chapter": "product-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/story/auto-reply.ts",
      "line": 47,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/story/auto-reply.ts#L47"
    },
    {
      "chapter": "product-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/story/coordinator.ts",
      "line": 156,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/story/coordinator.ts#L156"
    },
    {
      "chapter": "product-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/story/coordinator.ts",
      "line": 390,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/story/coordinator.ts#L390"
    },
    {
      "chapter": "product-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/story/axon-adapter.ts",
      "line": 30,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/story/axon-adapter.ts#L30"
    },
    {
      "chapter": "product-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/story/initializer.ts",
      "line": 39,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/story/initializer.ts#L39"
    },
    {
      "chapter": "product-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/story/coordinator.ts",
      "line": 247,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/story/coordinator.ts#L247"
    },
    {
      "chapter": "product-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/story/coordinator.ts",
      "line": 405,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/story/coordinator.ts#L405"
    },
    {
      "chapter": "product-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/story/coordinator.ts",
      "line": 190,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/story/coordinator.ts#L190"
    },
    {
      "chapter": "product-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/story/coordinator.ts",
      "line": 365,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/story/coordinator.ts#L365"
    },
    {
      "chapter": "product-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "test/story-deferred-review.test.ts",
      "line": 68,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/test/story-deferred-review.test.ts#L68"
    },
    {
      "chapter": "product-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/src/modules/story/narrative.ts",
      "line": 182,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/src/modules/story/narrative.ts#L182"
    },
    {
      "chapter": "product-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/story/coordinator.ts",
      "line": 247,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/story/coordinator.ts#L247"
    },
    {
      "chapter": "product-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/src/modules/story/narrative-prompts.ts",
      "line": 1,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/src/modules/story/narrative-prompts.ts#L1"
    },
    {
      "chapter": "product-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/src/modules/story/world-types.ts",
      "line": 18,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/src/modules/story/world-types.ts#L18"
    },
    {
      "chapter": "product-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/src/modules/story/world-mechanics.ts",
      "line": 246,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/src/modules/story/world-mechanics.ts#L246"
    },
    {
      "chapter": "product-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/story/initializer.ts",
      "line": 90,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/story/initializer.ts#L90"
    },
    {
      "chapter": "product-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/src/modules/story/narrative-state.ts",
      "line": 1,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/src/modules/story/narrative-state.ts#L1"
    },
    {
      "chapter": "product-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/src/modules/story/narrative-prompts.ts",
      "line": 17,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/src/modules/story/narrative-prompts.ts#L17"
    },
    {
      "chapter": "product-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/story/config.ts",
      "line": 11,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/story/config.ts#L11"
    },
    {
      "chapter": "product-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/src/modules/story/world-state.ts",
      "line": 16,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/src/modules/story/world-state.ts#L16"
    },
    {
      "chapter": "product-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/src/modules/story/world-mechanics.ts",
      "line": 153,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/src/modules/story/world-mechanics.ts#L153"
    },
    {
      "chapter": "product-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/src/modules/story/narrative-state.ts",
      "line": 93,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/src/modules/story/narrative-state.ts#L93"
    },
    {
      "chapter": "product-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/src/modules/story/narrative-state.ts",
      "line": 257,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/src/modules/story/narrative-state.ts#L257"
    },
    {
      "chapter": "product-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/story/initializer.ts",
      "line": 23,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/story/initializer.ts#L23"
    },
    {
      "chapter": "product-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/story/axon-adapter.ts",
      "line": 87,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/story/axon-adapter.ts#L87"
    },
    {
      "chapter": "product-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/story/coordinator.ts",
      "line": 286,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/story/coordinator.ts#L286"
    },
    {
      "chapter": "product-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/server.ts",
      "line": 793,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/server.ts#L793"
    },
    {
      "chapter": "product-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/story/axon-adapter.ts",
      "line": 70,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/story/axon-adapter.ts#L70"
    },
    {
      "chapter": "product-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "config/scenarios/agentic-v2-luna-gemini38-pov-v1.json",
      "line": 1,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/config/scenarios/agentic-v2-luna-gemini38-pov-v1.json#L1"
    },
    {
      "chapter": "product-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/server.ts",
      "line": 761,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/server.ts#L761"
    },
    {
      "chapter": "product-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "adapters/agent-router/dispatch.ts",
      "line": 300,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/adapters/agent-router/dispatch.ts#L300"
    },
    {
      "chapter": "product-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "adapters/agent-router/dispatch.ts",
      "line": 482,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/adapters/agent-router/dispatch.ts#L482"
    },
    {
      "chapter": "product-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/server.ts",
      "line": 761,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/server.ts#L761"
    },
    {
      "chapter": "product-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "adapters/agent-router/dispatch.ts",
      "line": 759,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/adapters/agent-router/dispatch.ts#L759"
    },
    {
      "chapter": "product-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/planning/runtime.ts",
      "line": 86,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/planning/runtime.ts#L86"
    },
    {
      "chapter": "product-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/story/coordinator.ts",
      "line": 390,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/story/coordinator.ts#L390"
    },
    {
      "chapter": "product-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/story/axon-adapter.ts",
      "line": 52,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/story/axon-adapter.ts#L52"
    },
    {
      "chapter": "product-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/story/event-recovery.ts",
      "line": 6,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/story/event-recovery.ts#L6"
    },
    {
      "chapter": "product-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/src/story.ts",
      "line": 1,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/src/story.ts#L1"
    },
    {
      "chapter": "product-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "examples/sdk/04-story-turn.ts",
      "line": 7,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/examples/sdk/04-story-turn.ts#L7"
    },
    {
      "chapter": "product-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "test/story-deferred-review.test.ts",
      "line": 68,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/test/story-deferred-review.test.ts#L68"
    },
    {
      "chapter": "atoms-index",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "README.md",
      "line": 3,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/README.md#L3"
    },
    {
      "chapter": "atoms-index",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/sdk/package.json",
      "line": 1,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/sdk/package.json#L1"
    },
    {
      "chapter": "atoms-index",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/package.json",
      "line": 1,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/package.json#L1"
    },
    {
      "chapter": "atoms-index",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/sdk/src/index.ts",
      "line": 1,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/sdk/src/index.ts#L1"
    },
    {
      "chapter": "atoms-generation",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/actor/roleplay-runtime.ts",
      "line": 305,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/actor/roleplay-runtime.ts#L305"
    },
    {
      "chapter": "atoms-generation",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/actor/roleplay-runtime.ts",
      "line": 344,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/actor/roleplay-runtime.ts#L344"
    },
    {
      "chapter": "atoms-generation",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/actor/roleplay-runtime.ts",
      "line": 86,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/actor/roleplay-runtime.ts#L86"
    },
    {
      "chapter": "atoms-generation",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/actor/roleplay-runtime.ts",
      "line": 381,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/actor/roleplay-runtime.ts#L381"
    },
    {
      "chapter": "atoms-generation",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "adapters/agent-router/dispatch.ts",
      "line": 957,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/adapters/agent-router/dispatch.ts#L957"
    },
    {
      "chapter": "atoms-generation",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/tools/pre-actor-director.ts",
      "line": 7,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/tools/pre-actor-director.ts#L7"
    },
    {
      "chapter": "atoms-generation",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/harness.ts",
      "line": 235,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/harness.ts#L235"
    },
    {
      "chapter": "atoms-generation",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/server.ts",
      "line": 761,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/server.ts#L761"
    },
    {
      "chapter": "atoms-generation",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/actor/roleplay-runtime.ts",
      "line": 413,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/actor/roleplay-runtime.ts#L413"
    },
    {
      "chapter": "atoms-generation",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/actor/roleplay-runtime.ts",
      "line": 1078,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/actor/roleplay-runtime.ts#L1078"
    },
    {
      "chapter": "atoms-specialists",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/src/modules/memory/advisory.ts",
      "line": 18,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/src/modules/memory/advisory.ts#L18"
    },
    {
      "chapter": "atoms-specialists",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/src/modules/memory/index.ts",
      "line": 1,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/src/modules/memory/index.ts#L1"
    },
    {
      "chapter": "atoms-specialists",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/src/contracts.ts",
      "line": 79,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/src/contracts.ts#L79"
    },
    {
      "chapter": "atoms-specialists",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/src/modules/memory/advisory.ts",
      "line": 169,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/src/modules/memory/advisory.ts#L169"
    },
    {
      "chapter": "atoms-specialists",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "examples/sdk/02-direct-tools.ts",
      "line": 1,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/examples/sdk/02-direct-tools.ts#L1"
    },
    {
      "chapter": "atoms-specialists",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "examples/sdk/03-agent-tools.ts",
      "line": 1,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/examples/sdk/03-agent-tools.ts#L1"
    },
    {
      "chapter": "atoms-specialists",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/src/pi.ts",
      "line": 9,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/src/pi.ts#L9"
    },
    {
      "chapter": "atoms-specialists",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/src/modules/memory/advisory.ts",
      "line": 127,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/src/modules/memory/advisory.ts#L127"
    },
    {
      "chapter": "atoms-specialists",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/src/modules/memory/advisory.ts",
      "line": 244,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/src/modules/memory/advisory.ts#L244"
    },
    {
      "chapter": "atoms-specialists",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/src/modules/memory/advisory.ts",
      "line": 43,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/src/modules/memory/advisory.ts#L43"
    },
    {
      "chapter": "atoms-specialists",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/src/modules/memory/advisory.ts",
      "line": 291,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/src/modules/memory/advisory.ts#L291"
    },
    {
      "chapter": "atoms-specialists",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/src/modules/memory/index.ts",
      "line": 1,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/src/modules/memory/index.ts#L1"
    },
    {
      "chapter": "atoms-specialists",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/package.json",
      "line": 12,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/package.json#L12"
    },
    {
      "chapter": "atoms-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/package.json",
      "line": 1,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/package.json#L1"
    },
    {
      "chapter": "atoms-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/src/story.ts",
      "line": 1,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/src/story.ts#L1"
    },
    {
      "chapter": "atoms-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/story/coordinator.ts",
      "line": 247,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/story/coordinator.ts#L247"
    },
    {
      "chapter": "atoms-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/src/modules/story/common.ts",
      "line": 3,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/src/modules/story/common.ts#L3"
    },
    {
      "chapter": "atoms-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/src/modules/story/world.ts",
      "line": 85,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/src/modules/story/world.ts#L85"
    },
    {
      "chapter": "atoms-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/src/modules/story/world-types.ts",
      "line": 182,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/src/modules/story/world-types.ts#L182"
    },
    {
      "chapter": "atoms-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/src/modules/story/world.ts",
      "line": 153,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/src/modules/story/world.ts#L153"
    },
    {
      "chapter": "atoms-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/src/modules/story/narrative.ts",
      "line": 47,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/src/modules/story/narrative.ts#L47"
    },
    {
      "chapter": "atoms-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/src/modules/story/narrative.ts",
      "line": 100,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/src/modules/story/narrative.ts#L100"
    },
    {
      "chapter": "atoms-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/src/modules/story/narrative.ts",
      "line": 182,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/src/modules/story/narrative.ts#L182"
    },
    {
      "chapter": "atoms-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/src/modules/story/narrative.ts",
      "line": 254,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/src/modules/story/narrative.ts#L254"
    },
    {
      "chapter": "atoms-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "examples/sdk/04-story-turn.ts",
      "line": 7,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/examples/sdk/04-story-turn.ts#L7"
    },
    {
      "chapter": "atoms-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/src/modules/story/world.ts",
      "line": 18,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/src/modules/story/world.ts#L18"
    },
    {
      "chapter": "atoms-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/src/tool.ts",
      "line": 10,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/src/tool.ts#L10"
    },
    {
      "chapter": "atoms-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/story/config.ts",
      "line": 11,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/story/config.ts#L11"
    },
    {
      "chapter": "atoms-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/src/modules/story/narrative-state.ts",
      "line": 93,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/src/modules/story/narrative-state.ts#L93"
    },
    {
      "chapter": "atoms-story",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/src/modules/story/world-state.ts",
      "line": 16,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/src/modules/story/world-state.ts#L16"
    },
    {
      "chapter": "atoms-worldbook",
      "repository": "worldbook-service",
      "sha": "9fd897eafcb23c3e9db6e0a8fdc6bf859fd7753b",
      "file": "src/worldbook/app.py",
      "line": 216,
      "url": "https://github.com/FlowGPT/worldbook-service/blob/9fd897eafcb23c3e9db6e0a8fdc6bf859fd7753b/src/worldbook/app.py#L216"
    },
    {
      "chapter": "atoms-worldbook",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "adapters/agent-router/dispatch.ts",
      "line": 765,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/adapters/agent-router/dispatch.ts#L765"
    },
    {
      "chapter": "atoms-worldbook",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/worldbook/runtime.ts",
      "line": 59,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/worldbook/runtime.ts#L59"
    },
    {
      "chapter": "atoms-worldbook",
      "repository": "worldbook-service",
      "sha": "9fd897eafcb23c3e9db6e0a8fdc6bf859fd7753b",
      "file": "src/worldbook/models.py",
      "line": 46,
      "url": "https://github.com/FlowGPT/worldbook-service/blob/9fd897eafcb23c3e9db6e0a8fdc6bf859fd7753b/src/worldbook/models.py#L46"
    },
    {
      "chapter": "atoms-worldbook",
      "repository": "worldbook-service",
      "sha": "9fd897eafcb23c3e9db6e0a8fdc6bf859fd7753b",
      "file": "src/worldbook/app.py",
      "line": 216,
      "url": "https://github.com/FlowGPT/worldbook-service/blob/9fd897eafcb23c3e9db6e0a8fdc6bf859fd7753b/src/worldbook/app.py#L216"
    },
    {
      "chapter": "atoms-worldbook",
      "repository": "worldbook-service",
      "sha": "9fd897eafcb23c3e9db6e0a8fdc6bf859fd7753b",
      "file": "src/worldbook/models.py",
      "line": 16,
      "url": "https://github.com/FlowGPT/worldbook-service/blob/9fd897eafcb23c3e9db6e0a8fdc6bf859fd7753b/src/worldbook/models.py#L16"
    },
    {
      "chapter": "atoms-worldbook",
      "repository": "worldbook-service",
      "sha": "9fd897eafcb23c3e9db6e0a8fdc6bf859fd7753b",
      "file": "src/worldbook/importer.py",
      "line": 208,
      "url": "https://github.com/FlowGPT/worldbook-service/blob/9fd897eafcb23c3e9db6e0a8fdc6bf859fd7753b/src/worldbook/importer.py#L208"
    },
    {
      "chapter": "atoms-worldbook",
      "repository": "worldbook-service",
      "sha": "9fd897eafcb23c3e9db6e0a8fdc6bf859fd7753b",
      "file": "src/worldbook/importer.py",
      "line": 117,
      "url": "https://github.com/FlowGPT/worldbook-service/blob/9fd897eafcb23c3e9db6e0a8fdc6bf859fd7753b/src/worldbook/importer.py#L117"
    },
    {
      "chapter": "atoms-worldbook",
      "repository": "worldbook-service",
      "sha": "9fd897eafcb23c3e9db6e0a8fdc6bf859fd7753b",
      "file": "src/worldbook/repository.py",
      "line": 103,
      "url": "https://github.com/FlowGPT/worldbook-service/blob/9fd897eafcb23c3e9db6e0a8fdc6bf859fd7753b/src/worldbook/repository.py#L103"
    },
    {
      "chapter": "atoms-worldbook",
      "repository": "worldbook-service",
      "sha": "9fd897eafcb23c3e9db6e0a8fdc6bf859fd7753b",
      "file": "src/worldbook/repository.py",
      "line": 340,
      "url": "https://github.com/FlowGPT/worldbook-service/blob/9fd897eafcb23c3e9db6e0a8fdc6bf859fd7753b/src/worldbook/repository.py#L340"
    },
    {
      "chapter": "atoms-worldbook",
      "repository": "worldbook-service",
      "sha": "9fd897eafcb23c3e9db6e0a8fdc6bf859fd7753b",
      "file": "src/worldbook/selection.py",
      "line": 337,
      "url": "https://github.com/FlowGPT/worldbook-service/blob/9fd897eafcb23c3e9db6e0a8fdc6bf859fd7753b/src/worldbook/selection.py#L337"
    },
    {
      "chapter": "atoms-worldbook",
      "repository": "worldbook-service",
      "sha": "9fd897eafcb23c3e9db6e0a8fdc6bf859fd7753b",
      "file": "src/worldbook/selection.py",
      "line": 107,
      "url": "https://github.com/FlowGPT/worldbook-service/blob/9fd897eafcb23c3e9db6e0a8fdc6bf859fd7753b/src/worldbook/selection.py#L107"
    },
    {
      "chapter": "atoms-worldbook",
      "repository": "worldbook-service",
      "sha": "9fd897eafcb23c3e9db6e0a8fdc6bf859fd7753b",
      "file": "src/worldbook/models.py",
      "line": 168,
      "url": "https://github.com/FlowGPT/worldbook-service/blob/9fd897eafcb23c3e9db6e0a8fdc6bf859fd7753b/src/worldbook/models.py#L168"
    },
    {
      "chapter": "atoms-worldbook",
      "repository": "worldbook-service",
      "sha": "9fd897eafcb23c3e9db6e0a8fdc6bf859fd7753b",
      "file": "src/worldbook/service.py",
      "line": 68,
      "url": "https://github.com/FlowGPT/worldbook-service/blob/9fd897eafcb23c3e9db6e0a8fdc6bf859fd7753b/src/worldbook/service.py#L68"
    },
    {
      "chapter": "atoms-worldbook",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/actor/roleplay-runtime.ts",
      "line": 845,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/actor/roleplay-runtime.ts#L845"
    },
    {
      "chapter": "atoms-worldbook",
      "repository": "worldbook-service",
      "sha": "9fd897eafcb23c3e9db6e0a8fdc6bf859fd7753b",
      "file": "src/worldbook/placement.py",
      "line": 6,
      "url": "https://github.com/FlowGPT/worldbook-service/blob/9fd897eafcb23c3e9db6e0a8fdc6bf859fd7753b/src/worldbook/placement.py#L6"
    },
    {
      "chapter": "atoms-worldbook",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/worldbook/prompt-layout.ts",
      "line": 40,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/worldbook/prompt-layout.ts#L40"
    },
    {
      "chapter": "atoms-worldbook",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/server.ts",
      "line": 793,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/server.ts#L793"
    },
    {
      "chapter": "atoms-worldbook",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/worldbook/runtime.ts",
      "line": 59,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/worldbook/runtime.ts#L59"
    },
    {
      "chapter": "atoms-worldbook",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/worldbook/runtime.ts",
      "line": 36,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/worldbook/runtime.ts#L36"
    },
    {
      "chapter": "atoms-worldbook",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/planning/runtime.ts",
      "line": 350,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/planning/runtime.ts#L350"
    },
    {
      "chapter": "atoms-worldbook",
      "repository": "worldbook-service",
      "sha": "9fd897eafcb23c3e9db6e0a8fdc6bf859fd7753b",
      "file": "src/worldbook/repository.py",
      "line": 173,
      "url": "https://github.com/FlowGPT/worldbook-service/blob/9fd897eafcb23c3e9db6e0a8fdc6bf859fd7753b/src/worldbook/repository.py#L173"
    },
    {
      "chapter": "atoms-worldbook",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/worldbook/resolve.ts",
      "line": 4,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/worldbook/resolve.ts#L4"
    },
    {
      "chapter": "atoms-worldbook",
      "repository": "worldbook-service",
      "sha": "9fd897eafcb23c3e9db6e0a8fdc6bf859fd7753b",
      "file": "src/worldbook/service.py",
      "line": 152,
      "url": "https://github.com/FlowGPT/worldbook-service/blob/9fd897eafcb23c3e9db6e0a8fdc6bf859fd7753b/src/worldbook/service.py#L152"
    },
    {
      "chapter": "atoms-worldbook",
      "repository": "worldbook-service",
      "sha": "9fd897eafcb23c3e9db6e0a8fdc6bf859fd7753b",
      "file": "src/worldbook/config.py",
      "line": 8,
      "url": "https://github.com/FlowGPT/worldbook-service/blob/9fd897eafcb23c3e9db6e0a8fdc6bf859fd7753b/src/worldbook/config.py#L8"
    },
    {
      "chapter": "atoms-worldbook",
      "repository": "worldbook-service",
      "sha": "9fd897eafcb23c3e9db6e0a8fdc6bf859fd7753b",
      "file": "src/worldbook/app.py",
      "line": 35,
      "url": "https://github.com/FlowGPT/worldbook-service/blob/9fd897eafcb23c3e9db6e0a8fdc6bf859fd7753b/src/worldbook/app.py#L35"
    },
    {
      "chapter": "atoms-worldbook",
      "repository": "worldbook-service",
      "sha": "9fd897eafcb23c3e9db6e0a8fdc6bf859fd7753b",
      "file": "tests/test_api.py",
      "line": 60,
      "url": "https://github.com/FlowGPT/worldbook-service/blob/9fd897eafcb23c3e9db6e0a8fdc6bf859fd7753b/tests/test_api.py#L60"
    },
    {
      "chapter": "atoms-worldbook",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/worldbook/debug-api.ts",
      "line": 94,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/worldbook/debug-api.ts#L94"
    },
    {
      "chapter": "atoms-memory",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/src/memory-tool.ts",
      "line": 8,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/src/memory-tool.ts#L8"
    },
    {
      "chapter": "atoms-memory",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/src/modules/memory/json.ts",
      "line": 1,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/src/modules/memory/json.ts#L1"
    },
    {
      "chapter": "atoms-memory",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "examples/sdk/05-memory.ts",
      "line": 1,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/examples/sdk/05-memory.ts#L1"
    },
    {
      "chapter": "atoms-memory",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/package.json",
      "line": 12,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/package.json#L12"
    },
    {
      "chapter": "atoms-memory",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/memory/axon-memory-runtime.ts",
      "line": 98,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/memory/axon-memory-runtime.ts#L98"
    },
    {
      "chapter": "atoms-memory",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/memory/axon-memory-runtime.ts",
      "line": 151,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/memory/axon-memory-runtime.ts#L151"
    },
    {
      "chapter": "atoms-memory",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/memory/diary-orchestrator.ts",
      "line": 91,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/memory/diary-orchestrator.ts#L91"
    },
    {
      "chapter": "atoms-memory",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/memory/diary-orchestrator.ts",
      "line": 269,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/memory/diary-orchestrator.ts#L269"
    },
    {
      "chapter": "atoms-memory",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/memory/hinos-memory-runtime.ts",
      "line": 21,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/memory/hinos-memory-runtime.ts#L21"
    },
    {
      "chapter": "atoms-memory",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/memory/hinos-memory-runtime.ts",
      "line": 112,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/memory/hinos-memory-runtime.ts#L112"
    },
    {
      "chapter": "atoms-memory",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/memory/hinos-memory-runtime.ts",
      "line": 161,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/memory/hinos-memory-runtime.ts#L161"
    },
    {
      "chapter": "atoms-memory",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/harness.ts",
      "line": 317,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/harness.ts#L317"
    },
    {
      "chapter": "atoms-memory",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "adapters/agent-router/dispatch.ts",
      "line": 744,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/adapters/agent-router/dispatch.ts#L744"
    },
    {
      "chapter": "atoms-memory",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/server.ts",
      "line": 995,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/server.ts#L995"
    },
    {
      "chapter": "atoms-memory",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "adapters/agent-router/dispatch.ts",
      "line": 811,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/adapters/agent-router/dispatch.ts#L811"
    },
    {
      "chapter": "atoms-memory",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/server.ts",
      "line": 649,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/server.ts#L649"
    },
    {
      "chapter": "atoms-memory",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/memory/axon-memory-runtime.ts",
      "line": 177,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/memory/axon-memory-runtime.ts#L177"
    },
    {
      "chapter": "atoms-compact",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/memory/compact-runtime.ts",
      "line": 141,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/memory/compact-runtime.ts#L141"
    },
    {
      "chapter": "atoms-compact",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/sdk/src/index.ts",
      "line": 1,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/sdk/src/index.ts#L1"
    },
    {
      "chapter": "atoms-compact",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/memory/compact-runtime.ts",
      "line": 1326,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/memory/compact-runtime.ts#L1326"
    },
    {
      "chapter": "atoms-compact",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/memory/compact-runtime.ts",
      "line": 1358,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/memory/compact-runtime.ts#L1358"
    },
    {
      "chapter": "atoms-compact",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/memory/compact-runtime.ts",
      "line": 1394,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/memory/compact-runtime.ts#L1394"
    },
    {
      "chapter": "atoms-compact",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/memory/compact-runtime.ts",
      "line": 1455,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/memory/compact-runtime.ts#L1455"
    },
    {
      "chapter": "atoms-compact",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/memory/compact-runtime.ts",
      "line": 1462,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/memory/compact-runtime.ts#L1462"
    },
    {
      "chapter": "atoms-compact",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/memory/compact-runtime.ts",
      "line": 1544,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/memory/compact-runtime.ts#L1544"
    },
    {
      "chapter": "atoms-compact",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/memory/compact-runtime.ts",
      "line": 1628,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/memory/compact-runtime.ts#L1628"
    },
    {
      "chapter": "atoms-compact",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/integrations/roleplay-axon-adapter.ts",
      "line": 458,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/integrations/roleplay-axon-adapter.ts#L458"
    },
    {
      "chapter": "atoms-compact",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/memory/compact-runtime.ts",
      "line": 1150,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/memory/compact-runtime.ts#L1150"
    },
    {
      "chapter": "atoms-compact",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "config/scenarios/compact-automemory-v0-native.json",
      "line": 9,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/config/scenarios/compact-automemory-v0-native.json#L9"
    },
    {
      "chapter": "atoms-compact",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/server.ts",
      "line": 694,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/server.ts#L694"
    },
    {
      "chapter": "atoms-compact",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/memory/compact-runtime.ts",
      "line": 93,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/memory/compact-runtime.ts#L93"
    },
    {
      "chapter": "atoms-compact",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/memory/compact-runtime.ts",
      "line": 135,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/memory/compact-runtime.ts#L135"
    },
    {
      "chapter": "atoms-compact",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/memory/compact-protocol.ts",
      "line": 4,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/memory/compact-protocol.ts#L4"
    },
    {
      "chapter": "atoms-compact",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/memory/compact-runtime.ts",
      "line": 27,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/memory/compact-runtime.ts#L27"
    },
    {
      "chapter": "atoms-compact",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/memory/compact-runtime.ts",
      "line": 1562,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/memory/compact-runtime.ts#L1562"
    },
    {
      "chapter": "atoms-compact",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/memory/compact-runtime.ts",
      "line": 1654,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/memory/compact-runtime.ts#L1654"
    },
    {
      "chapter": "atoms-context",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/sdk/src/context-placement.ts",
      "line": 1,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/sdk/src/context-placement.ts#L1"
    },
    {
      "chapter": "atoms-context",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/sdk/src/context-placement.ts",
      "line": 50,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/sdk/src/context-placement.ts#L50"
    },
    {
      "chapter": "atoms-context",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "examples/sdk/09-context-placement.ts",
      "line": 1,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/examples/sdk/09-context-placement.ts#L1"
    },
    {
      "chapter": "atoms-context",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/src/contracts.ts",
      "line": 87,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/src/contracts.ts#L87"
    },
    {
      "chapter": "atoms-context",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/src/modules/memory/advisory.ts",
      "line": 244,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/src/modules/memory/advisory.ts#L244"
    },
    {
      "chapter": "atoms-images",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/src/image-tool.ts",
      "line": 1,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/src/image-tool.ts#L1"
    },
    {
      "chapter": "atoms-images",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/tools/imagine-skill.ts",
      "line": 313,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/tools/imagine-skill.ts#L313"
    },
    {
      "chapter": "atoms-images",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "adapters/agent-router/dispatch.ts",
      "line": 759,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/adapters/agent-router/dispatch.ts#L759"
    },
    {
      "chapter": "atoms-images",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/src/image-tool.ts",
      "line": 43,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/src/image-tool.ts#L43"
    },
    {
      "chapter": "atoms-images",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "examples/sdk/06-image.ts",
      "line": 1,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/examples/sdk/06-image.ts#L1"
    },
    {
      "chapter": "atoms-images",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "adapters/agent-router/dispatch.ts",
      "line": 1004,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/adapters/agent-router/dispatch.ts#L1004"
    },
    {
      "chapter": "atoms-images",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "adapters/agent-router/dispatch.ts",
      "line": 1060,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/adapters/agent-router/dispatch.ts#L1060"
    },
    {
      "chapter": "atoms-images",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/tools/imagine-skill.ts",
      "line": 63,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/tools/imagine-skill.ts#L63"
    },
    {
      "chapter": "atoms-images",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/tools/imagine-skill.ts",
      "line": 321,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/tools/imagine-skill.ts#L321"
    },
    {
      "chapter": "atoms-images",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/tools/imagine-skill.ts",
      "line": 268,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/tools/imagine-skill.ts#L268"
    },
    {
      "chapter": "atoms-images",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/actor/roleplay-runtime.ts",
      "line": 327,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/actor/roleplay-runtime.ts#L327"
    },
    {
      "chapter": "atoms-images",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "adapters/agent-router/dispatch.ts",
      "line": 1108,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/adapters/agent-router/dispatch.ts#L1108"
    },
    {
      "chapter": "atoms-images",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/tools/imagine-skill.ts",
      "line": 362,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/tools/imagine-skill.ts#L362"
    },
    {
      "chapter": "atoms-images",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/server.ts",
      "line": 761,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/server.ts#L761"
    },
    {
      "chapter": "atoms-instructions",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/tools/dio-skill.ts",
      "line": 52,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/tools/dio-skill.ts#L52"
    },
    {
      "chapter": "atoms-instructions",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "adapters/agent-router/dispatch.ts",
      "line": 974,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/adapters/agent-router/dispatch.ts#L974"
    },
    {
      "chapter": "atoms-instructions",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "adapters/agent-router/dispatch.ts",
      "line": 974,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/adapters/agent-router/dispatch.ts#L974"
    },
    {
      "chapter": "atoms-instructions",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "adapters/agent-router/dispatch.ts",
      "line": 775,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/adapters/agent-router/dispatch.ts#L775"
    },
    {
      "chapter": "atoms-instructions",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/tools/dio-skill.ts",
      "line": 113,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/tools/dio-skill.ts#L113"
    },
    {
      "chapter": "atoms-instructions",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/integrations/roleplay-axon-adapter.ts",
      "line": 132,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/integrations/roleplay-axon-adapter.ts#L132"
    },
    {
      "chapter": "atoms-instructions",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/integrations/roleplay-axon-adapter.ts",
      "line": 435,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/integrations/roleplay-axon-adapter.ts#L435"
    },
    {
      "chapter": "atoms-instructions",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "test/closed-loop-parity.test.ts",
      "line": 633,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/test/closed-loop-parity.test.ts#L633"
    },
    {
      "chapter": "atoms-instructions",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/tools/dio-skill.ts",
      "line": 65,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/tools/dio-skill.ts#L65"
    },
    {
      "chapter": "atoms-instructions",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/tools/dio-skill.ts",
      "line": 144,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/tools/dio-skill.ts#L144"
    },
    {
      "chapter": "atoms-instructions",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "adapters/agent-router/dispatch.ts",
      "line": 794,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/adapters/agent-router/dispatch.ts#L794"
    },
    {
      "chapter": "atoms-runtime",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/sdk/src/agent.ts",
      "line": 3,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/sdk/src/agent.ts#L3"
    },
    {
      "chapter": "atoms-runtime",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/sdk/src/slow-runtime.ts",
      "line": 64,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/sdk/src/slow-runtime.ts#L64"
    },
    {
      "chapter": "atoms-runtime",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/sdk/src/runtime.ts",
      "line": 89,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/sdk/src/runtime.ts#L89"
    },
    {
      "chapter": "atoms-runtime",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/sdk/src/index.ts",
      "line": 1,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/sdk/src/index.ts#L1"
    },
    {
      "chapter": "atoms-runtime",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/sdk/package.json",
      "line": 1,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/sdk/package.json#L1"
    },
    {
      "chapter": "atoms-runtime",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "examples/sdk/07-fast-slow.ts",
      "line": 18,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/examples/sdk/07-fast-slow.ts#L18"
    },
    {
      "chapter": "atoms-runtime",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "examples/sdk/support/runtime.ts",
      "line": 5,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/examples/sdk/support/runtime.ts#L5"
    },
    {
      "chapter": "atoms-runtime",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "examples/sdk/01-agent.ts",
      "line": 10,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/examples/sdk/01-agent.ts#L10"
    },
    {
      "chapter": "atoms-runtime",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/sdk/src/runtime-shared.ts",
      "line": 154,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/sdk/src/runtime-shared.ts#L154"
    },
    {
      "chapter": "atoms-runtime",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/sdk/src/slow-runtime.ts",
      "line": 82,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/sdk/src/slow-runtime.ts#L82"
    },
    {
      "chapter": "atoms-runtime",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/sdk/src/runtime.ts",
      "line": 12,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/sdk/src/runtime.ts#L12"
    },
    {
      "chapter": "atoms-runtime",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/sdk/src/slow-runtime.ts",
      "line": 153,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/sdk/src/slow-runtime.ts#L153"
    },
    {
      "chapter": "atoms-runtime",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/sdk/src/contracts.ts",
      "line": 96,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/sdk/src/contracts.ts#L96"
    },
    {
      "chapter": "atoms-runtime",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/sdk/src/runtime-shared.ts",
      "line": 47,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/sdk/src/runtime-shared.ts#L47"
    },
    {
      "chapter": "atoms-runtime",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/sdk/src/runtime-shared.ts",
      "line": 144,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/sdk/src/runtime-shared.ts#L144"
    },
    {
      "chapter": "atoms-runtime",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/sdk/src/slow-runtime.ts",
      "line": 69,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/sdk/src/slow-runtime.ts#L69"
    },
    {
      "chapter": "atoms-runtime",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "examples/sdk/08-workflow-step.ts",
      "line": 24,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/examples/sdk/08-workflow-step.ts#L24"
    },
    {
      "chapter": "atoms-runtime",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/sdk/src/runtime.ts",
      "line": 75,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/sdk/src/runtime.ts#L75"
    },
    {
      "chapter": "atoms-runtime",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/sdk/src/tasks.ts",
      "line": 23,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/sdk/src/tasks.ts#L23"
    },
    {
      "chapter": "atoms-runtime",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/sdk/src/slow-runtime.ts",
      "line": 275,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/sdk/src/slow-runtime.ts#L275"
    },
    {
      "chapter": "atoms-runtime",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/sdk/src/registry.ts",
      "line": 32,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/sdk/src/registry.ts#L32"
    },
    {
      "chapter": "atoms-runtime",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/src/tool.ts",
      "line": 3,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/src/tool.ts#L3"
    },
    {
      "chapter": "atoms-runtime",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/src/hooks.ts",
      "line": 1,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/src/hooks.ts#L1"
    },
    {
      "chapter": "atoms-runtime",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "examples/sdk/01-agent.ts",
      "line": 1,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/examples/sdk/01-agent.ts#L1"
    },
    {
      "chapter": "atoms-runtime",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "examples/sdk/07-fast-slow.ts",
      "line": 1,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/examples/sdk/07-fast-slow.ts#L1"
    },
    {
      "chapter": "atoms-runtime",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/planning/static-planner.ts",
      "line": 4,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/planning/static-planner.ts#L4"
    },
    {
      "chapter": "atoms-runtime",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/capabilities/executor.ts",
      "line": 18,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/capabilities/executor.ts#L18"
    },
    {
      "chapter": "atoms-runtime",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/prompt/compiler.ts",
      "line": 33,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/prompt/compiler.ts#L33"
    },
    {
      "chapter": "atoms-runtime",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/capabilities/mcp-capability.ts",
      "line": 4,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/capabilities/mcp-capability.ts#L4"
    },
    {
      "chapter": "atoms-runtime",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/sdk/src/domain/contracts.ts",
      "line": 91,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/sdk/src/domain/contracts.ts#L91"
    },
    {
      "chapter": "atoms-runtime",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/ports.ts",
      "line": 131,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/ports.ts#L131"
    },
    {
      "chapter": "atoms-runtime",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/harness.ts",
      "line": 145,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/harness.ts#L145"
    },
    {
      "chapter": "atoms-runtime",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/capabilities/executor.ts",
      "line": 42,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/capabilities/executor.ts#L42"
    },
    {
      "chapter": "atoms-runtime",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/prompt/compiler.ts",
      "line": 35,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/prompt/compiler.ts#L35"
    },
    {
      "chapter": "atoms-runtime",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/integrations/chat-kernel-runtime.ts",
      "line": 111,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/integrations/chat-kernel-runtime.ts#L111"
    },
    {
      "chapter": "atoms-runtime",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/actor/roleplay-runtime.ts",
      "line": 732,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/actor/roleplay-runtime.ts#L732"
    },
    {
      "chapter": "atoms-runtime",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "adapters/agent-router/dispatch.ts",
      "line": 731,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/adapters/agent-router/dispatch.ts#L731"
    },
    {
      "chapter": "atoms-runtime",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "adapters/agent-router/dispatch.ts",
      "line": 1325,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/adapters/agent-router/dispatch.ts#L1325"
    },
    {
      "chapter": "atoms-auto-reply",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/planning/auto-reply.ts",
      "line": 27,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/planning/auto-reply.ts#L27"
    },
    {
      "chapter": "atoms-auto-reply",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/story/auto-reply.ts",
      "line": 47,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/story/auto-reply.ts#L47"
    },
    {
      "chapter": "atoms-auto-reply",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "adapters/agent-router/dispatch.ts",
      "line": 613,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/adapters/agent-router/dispatch.ts#L613"
    },
    {
      "chapter": "atoms-auto-reply",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/planning/auto-reply.ts",
      "line": 184,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/planning/auto-reply.ts#L184"
    },
    {
      "chapter": "atoms-auto-reply",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "adapters/agent-router/dispatch.ts",
      "line": 677,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/adapters/agent-router/dispatch.ts#L677"
    },
    {
      "chapter": "atoms-auto-reply",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/planning/runtime.ts",
      "line": 593,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/planning/runtime.ts#L593"
    },
    {
      "chapter": "atoms-auto-reply",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "adapters/axon/client.ts",
      "line": 783,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/adapters/axon/client.ts#L783"
    },
    {
      "chapter": "atoms-auto-reply",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/planning/auto-reply.ts",
      "line": 253,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/planning/auto-reply.ts#L253"
    },
    {
      "chapter": "atoms-auto-reply",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/story/auto-reply.ts",
      "line": 53,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/story/auto-reply.ts#L53"
    },
    {
      "chapter": "atoms-auto-reply",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/story/auto-reply.ts",
      "line": 74,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/story/auto-reply.ts#L74"
    },
    {
      "chapter": "atoms-auto-reply",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/story/auto-reply.ts",
      "line": 17,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/story/auto-reply.ts#L17"
    },
    {
      "chapter": "atoms-auto-reply",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/server.ts",
      "line": 124,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/server.ts#L124"
    },
    {
      "chapter": "atoms-auto-reply",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/server.ts",
      "line": 170,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/server.ts#L170"
    },
    {
      "chapter": "atoms-auto-reply",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/planning/prompt-manager.ts",
      "line": 160,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/planning/prompt-manager.ts#L160"
    },
    {
      "chapter": "atoms-auto-reply",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "adapters/agent-router/dispatch.ts",
      "line": 651,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/adapters/agent-router/dispatch.ts#L651"
    },
    {
      "chapter": "atoms-auto-reply",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "test/agent-router.test.ts",
      "line": 1220,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/test/agent-router.test.ts#L1220"
    },
    {
      "chapter": "atoms-auto-reply",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "adapters/agent-router/dispatch.ts",
      "line": 804,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/adapters/agent-router/dispatch.ts#L804"
    },
    {
      "chapter": "atoms-auto-reply",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/sumi/runtime.ts",
      "line": 41,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/sumi/runtime.ts#L41"
    },
    {
      "chapter": "atoms-auto-reply",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/planning/auto-reply.ts",
      "line": 114,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/planning/auto-reply.ts#L114"
    },
    {
      "chapter": "atoms-auto-reply",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/planning/auto-reply.ts",
      "line": 310,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/planning/auto-reply.ts#L310"
    },
    {
      "chapter": "atoms-auto-reply",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/story/auto-reply.ts",
      "line": 98,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/story/auto-reply.ts#L98"
    },
    {
      "chapter": "atoms-auto-reply",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "apps/emochi/pioneer/api.ts",
      "line": 129,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/apps/emochi/pioneer/api.ts#L129"
    },
    {
      "chapter": "atoms-auto-reply",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/sdk/package.json",
      "line": 9,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/sdk/package.json#L9"
    },
    {
      "chapter": "atoms-auto-reply",
      "repository": "roleplay-harness",
      "sha": "fa41d220d48327e58d994f936517b23f2f15f658",
      "file": "packages/tools/package.json",
      "line": 12,
      "url": "https://github.com/FlowGPT/roleplay-harness/blob/fa41d220d48327e58d994f936517b23f2f15f658/packages/tools/package.json#L12"
    }
  ]
}