{
  "version": 1,
  "id": "streaming-angular",
  "demo": "streaming",
  "frontend": "angular",
  "recordedAt": "2026-10-30T18:32:02.907Z",
  "sourceRevision": "c586a94bb20d9924058b9f6a067c709a159bd6b6",
  "sourceKind": "fixture-backed-langgraph",
  "sourceDescription": "Actual framework app and LangGraph runtime; existing aimock responses, 12-character chunks with 100ms fixture delay. No live provider requests.",
  "input": "Tell me one quick fact about Angular signals in two sentences.",
  "viewport": {
    "width": 640,
    "height": 640
  },
  "theme": {
    "mode": "light",
    "mechanism": "existing tplane:theme host message"
  },
  "edits": {
    "trimStart": 0.326,
    "trimEnd": 15.557,
    "speed": 1
  },
  "phases": [
    {
      "time": 0,
      "text": "Send a message."
    },
    {
      "time": 3.8219999999999996,
      "text": "Read the arriving response."
    },
    {
      "time": 10.227,
      "text": "The response is complete."
    }
  ],
  "finalText": "Tell me one quick fact about Angular signals in two sentences.\n\nAngular signals are a reactive primitive (signal, computed, effect) that track dependencies to provide fine-grained reactivity and more efficient change detection. They let you update state synchronously via set()/update() and ensure only consumers that read an affected signal are re\u2011evaluated.",
  "requests": [
    {
      "method": "POST",
      "path": "/api/threads"
    },
    {
      "method": "POST",
      "path": "/api/threads/01a18e15-1c9f-77e2-917e-16e078595c76/runs/stream"
    },
    {
      "method": "POST",
      "path": "/api/threads/01a18e15-1c9f-77e2-917e-16e078595c76/history"
    }
  ],
  "sourceHashes": {
    "apps/website/scripts/record-docs-media.mjs": "66da48b538efb967f75ec92f98b1dfe91c7de9fe7b1e7e0a4d27b3b8ce47657c",
    "apps/website/scripts/encode-docs-media.mjs": "c290872256a41268974dcf232c590b3933363533197d4cb36c49817892125ed7",
    "libs/example-layouts/src/lib/install-embedded-theme.ts": "43ac4509c68c7e5b07afea1100f12b1db30ab8273c99d7bf7c9bdcd479d9b6bf",
    "cockpit/langgraph/streaming/angular/e2e/fixtures/streaming.json": "5ce36b2b40561fbc46ba0dd2cb73a71b794d2ab1ad9fad9dc03a34b4886cbf74",
    "cockpit/langgraph/streaming/python/src/graph.py": "97db9510fc245cfa0c151404869f6a35dc285cb501250743d4daab7ace556bf2",
    "cockpit/langgraph/persistence/angular/e2e/fixtures/persistence.json": "3094094800130ddae423e1744792677314a553ec5b4198107bed4d0bb60d02a3",
    "cockpit/langgraph/persistence/python/src/graph.py": "b61c7846814b394d9fdc0cd412a0a8936bfa2bba21d84aab80b7eacad764d20d",
    "cockpit/langgraph/client-tools/angular/e2e/fixtures/client-tools.json": "ccfae8ada335ffaf6a0eef56d4bc69045200a1a12f5ae3c0079b6b6987d13906",
    "cockpit/langgraph/client-tools/python/src/graph.py": "f11ff38e2f0da2450d74596c55791fc06da9e3dcdbc8f8c09a070164a76d5de7",
    "cockpit/langgraph/streaming/angular/src/app/agent-ref.ts": "63df5e36be017cfa618c6f08bd98dc13d2fe71c1543d4a2716c3b6bc78590179",
    "cockpit/langgraph/streaming/angular/src/app/app.config.ts": "4b990035e121600652ed574a95136edc33cf733039c8a3ef1787aa408d247d2f",
    "cockpit/langgraph/streaming/angular/src/app/streaming.component.ts": "8e17f5ec474b240e11431745125bee866edd6ed043bce1ce715dd6aa5a6ef24b",
    "cockpit/langgraph/streaming/angular/src/environments/environment.development.ts": "226037b02c7cf894ba61f3384f40cede121abdd050ed967593609b16332099ba",
    "cockpit/langgraph/streaming/angular/src/environments/environment.ts": "2925cb5ca9e0d6785f8d6133be19b798ba599649fe2ecc9e8f5f724a793de200",
    "cockpit/langgraph/streaming/angular/src/index.html": "c05e78d8629edd08516c26d5426003fb1a06ed76b5dce8c33fbb657e7106fa74",
    "cockpit/langgraph/streaming/angular/src/index.ts": "a2d8e125e2a8cc2d80f87ce8bf29bf11529042674b70d14837dcdcf2bdc8c0a1",
    "cockpit/langgraph/streaming/angular/src/main.cockpit.ts": "f7d488b76cc76676ce464a4ae26941db054a8b5d94eaa1474d6fe4b2d3ff4528",
    "cockpit/langgraph/streaming/angular/src/main.ts": "f7d488b76cc76676ce464a4ae26941db054a8b5d94eaa1474d6fe4b2d3ff4528",
    "cockpit/langgraph/streaming/angular/src/styles.css": "18469de3bf7ad92b6961e516958956233c42fa13d26c433c909cc80c728fb279"
  },
  "buildHashes": {
    "dist/cockpit/langgraph/streaming/angular/3rdpartylicenses.txt": "0446f2a4ab53fc8f2ad1afbbc381038541a9cb0772d6ead88069690159d5c463",
    "dist/cockpit/langgraph/streaming/angular/chunk-3F2VHBRP.js": "7834becef90e25e8165bc8ef28e426e113bd4e1304dd89c3f2addb6fc546f98f",
    "dist/cockpit/langgraph/streaming/angular/chunk-6YMV77Z3.js": "5778da1152b863fbe8c681717c8f28e98d1c7a42369ba756c3c61b5ccab3f0e9",
    "dist/cockpit/langgraph/streaming/angular/chunk-72M7S2I2.js": "e57d074fac3be8c6923af24cb11e5dfab7d59c1df65d6afa94b71fbba1084722",
    "dist/cockpit/langgraph/streaming/angular/chunk-A3W2L4NU.js": "7390d83f6d318bdadf695579e8db1ca18a0f523af06801ca502b6855dc083f97",
    "dist/cockpit/langgraph/streaming/angular/chunk-DAQOROHW.js": "17cd7e055ff48af6b500ca62e8fb5d81d31dc888ab59262c24ccfafb28388db0",
    "dist/cockpit/langgraph/streaming/angular/chunk-TEEJHA46.js": "401fa1f24a41db630f72a26280389e9e01525cbbb89956f9785db45ac388b85f",
    "dist/cockpit/langgraph/streaming/angular/chunk-TTOFLF7C.js": "b2d7d26ec4649169b34710e4438d93c42ddb9bcd59932e2454633daa15007882",
    "dist/cockpit/langgraph/streaming/angular/chunk-U4EJBP5X.js": "ec5c778f6b96949b232487051519b25609e5c62d4f40fc1589cce8a2c10e1cbb",
    "dist/cockpit/langgraph/streaming/angular/chunk-XILM7NCB.js": "715ca6f5227167d07c647998f87e89631dde03baa090c2010a9625cc0e114ea3",
    "dist/cockpit/langgraph/streaming/angular/chunk-ZY5JK74G.js": "d89f514b71ea0dcecc1193765446e48c68728b84bbf7f3134427311e8c61b673",
    "dist/cockpit/langgraph/streaming/angular/index.html": "0fc04a401d3dd8f867c38496fcab3800dd8629b7aac19e3c95c160e08b2b6033",
    "dist/cockpit/langgraph/streaming/angular/main.js": "5870cb52167129af784ebac71baa4f61ff225a73c8bc38568ea742b744364a87",
    "dist/cockpit/langgraph/streaming/angular/prerendered-routes.json": "a79ddcc8a115190e9c19479ed36914741a7d1db74f0a1153529efc80725505fe",
    "dist/cockpit/langgraph/streaming/angular/styles.css": "2073354185c210266f36bb50be48b17b44046477f4c69bb2efb15d0fe4af123f"
  },
  "rawSha256": "7a6a0f116ebdacd2f3b117597fdf5957aeb5306dba94c2e4aabe085339c1aa7d",
  "reproduction": "node apps/website/scripts/record-docs-media.mjs streaming angular",
  "duration": 15.2,
  "captions": [
    {
      "from": 0,
      "to": 3.822,
      "text": "Send a message."
    },
    {
      "from": 3.822,
      "to": 10.227,
      "text": "Read the arriving response."
    },
    {
      "from": 10.227,
      "to": 15.2,
      "text": "The response is complete."
    }
  ],
  "ffmpeg": {
    "version": "ffmpeg version 8.1.1 Copyright (c) 2000-2026 the FFmpeg developers",
    "commands": [
      [
        "-ss",
        "0.326",
        "-i",
        "<raw-capture.webm>",
        "-t",
        "15.231",
        "-an",
        "-vf",
        "fps=25,format=yuv420p",
        "-c:v",
        "libx264",
        "-crf",
        "22",
        "-preset",
        "medium",
        "-movflags",
        "+faststart",
        "<capture-directory>/encoded/streaming-angular.mp4"
      ],
      [
        "-ss",
        "0.326",
        "-i",
        "<raw-capture.webm>",
        "-t",
        "15.231",
        "-an",
        "-vf",
        "fps=25,format=yuv420p",
        "-c:v",
        "libvpx-vp9",
        "-crf",
        "32",
        "-b:v",
        "0",
        "-row-mt",
        "1",
        "-cpu-used",
        "4",
        "<capture-directory>/encoded/streaming-angular.webm"
      ],
      [
        "-ss",
        "13.2",
        "-i",
        "<capture-directory>/encoded/streaming-angular.mp4",
        "-frames:v",
        "1",
        "<capture-directory>/encoded/streaming-angular-poster.png"
      ],
      [
        "-i",
        "<capture-directory>/encoded/streaming-angular.mp4",
        "-f",
        "null",
        "-"
      ],
      [
        "-i",
        "<capture-directory>/encoded/streaming-angular.webm",
        "-f",
        "null",
        "-"
      ]
    ]
  },
  "assets": {
    "streaming-angular.mp4": {
      "sha256": "1fdb9bc5f355808bf4ed63a809d34e9be72a6c7613aa6c28e887100a1da7f00c",
      "bytes": 99877
    },
    "streaming-angular.webm": {
      "sha256": "cfeae87806c7bae4a69eabf72f0555568e3df51e79f627cb5653fa954b401758",
      "bytes": 108602
    },
    "streaming-angular.vtt": {
      "sha256": "ddd2f188a1d25a5914661233fe6dd1645f72e7febbce9a5af4fd19414574ac07",
      "bytes": 170
    },
    "streaming-angular-poster.png": {
      "sha256": "0f221133d0a3f463478bd0d5f0f90ee101a4052665d3a2d332f18c05d6c6147f",
      "bytes": 83694
    },
    "streaming-angular-transcript.txt": {
      "sha256": "f41de0c6699df16c9f90098d7a5102694590b14194e3c234bc3334f8b2e4195c",
      "bytes": 806
    }
  },
  "sourceTreeDirty": true
}
