{"type":"agent-native.clip.context","version":2,"webmcp":{"protocol":"WebMCP","scope":"page-local","tools":[{"name":"clips-get-context","title":"Get clip context","description":"Read clip metadata, readiness, transcript status, and the HTTP API URLs. This works without a browser.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true}},{"name":"clips-get-transcript","title":"Get clip transcript","description":"Read bounded timestamped transcript segments. Use nextStartIndex to page through long transcripts without losing overlapping segments. For complete transcript text, follow sourceUrl to the HTTP transcript endpoint.","inputSchema":{"type":"object","properties":{"startMs":{"type":"number","minimum":0,"description":"Only return segments that overlap this start time."},"endMs":{"type":"number","minimum":0,"description":"Only return segments that overlap this end time."},"startIndex":{"type":"integer","minimum":0,"description":"Stable segment index for pagination; prefer nextStartIndex from the previous page."},"maxSegments":{"type":"integer","minimum":1,"maximum":50,"description":"Maximum number of transcript segments to return."}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true}},{"name":"clips-get-frame","title":"Get clip frame","description":"Get the clip's JPEG frame URL at a requested timestamp. Fetch the returned imageUrl as an image to inspect the video; its scoped access query is already included. On an error, inspect the JSON failureKind and nextStep: access needs a Share with agents link, media means the stored recording media could not be retrieved, processing means the frame request failed and may be retried or reported, unsupported means this source cannot provide frames through Clips and must not be retried, and expired means the owner must update the clip expiry before creating another link.","inputSchema":{"type":"object","properties":{"atMs":{"type":"number","minimum":0,"description":"Video timestamp in milliseconds; fetch the returned imageUrl as an image to inspect the frame."}},"required":["atMs"],"additionalProperties":false},"availability":"ready","annotations":{"readOnlyHint":true,"untrustedContentHint":true}},{"name":"clips-get-frames","title":"Get clip frame sheet","description":"Get a URL for one JPEG contact sheet of up to 36 consecutive video frames, to watch motion such as an animation or a transition in a single image. Cells read left to right, then top to bottom; cell i shows the frame on screen at startMs + i * 1000 / fps. Solid black cells at the end of the grid hold no frame. The range can span at most 60 seconds. On an error, inspect the JSON failureKind and nextStep; failureKind=request means the range or fps was out of bounds, and nextStep names a request that fits.","inputSchema":{"type":"object","properties":{"startMs":{"type":"number","minimum":0,"description":"Time of the first frame, in milliseconds."},"endMs":{"type":"number","minimum":0,"description":"End of the range in milliseconds (exclusive). Omit it to get up to 36 frames from startMs, stopping at 60 seconds or the end of the clip."},"fps":{"type":"number","minimum":0.1,"maximum":60,"description":"Frames per second to sample. Omit it to use the video's own frame rate, so every frame in the range appears once."}},"required":["startMs"],"additionalProperties":false},"availability":"ready","annotations":{"readOnlyHint":true,"untrustedContentHint":true}}],"instructions":"For browser-independent access from any HTTP client, fetch the exact agentContextUrl and use its apis.context, apis.transcript, apis.frame, and apis.frames URLs. Keep the clip id and any agent_access query parameter exactly as provided on every request. Read the complete transcript from apis.transcript and fetch recommendedFrames[].url (or apis.frame.urlTemplate with atMs) as images to inspect the video. To watch motion, fetch apis.frames.urlTemplate: one contact-sheet image of consecutive frames. Do not stop at the transcript when frames are available. For any non-2xx response, inspect the JSON failureKind, error, and nextStep. If a context or transcript request has failureKind=access, explain that this link does not grant access; for a private clip, ask its owner to open the Clips Share menu, choose Share with agents, and send the generated link. If a frame request has failureKind=media while the context or transcript still works, explain that the stored recording media could not be retrieved and another share link will not fix it. If a frame request has failureKind=processing, follow nextStep; extraction or temporary storage failures do not mean the clip is missing or inaccessible. If a request has failureKind=expired, ask the owner to extend or remove the clip's expiry in the Share menu, save it, then create and send a new Share with agents link. If this clip page is already open in a WebMCP-capable browser, list its page tools for bounded read-only access; clips-get-transcript may omit fullText or return a truncated result, and its sourceUrl points to the HTTP transcript. Use nextStartIndex for transcript pagination so overlapping segments are not lost.","http":{"schema_version":"v1","browserRequired":false,"tools":[{"name":"clips-get-context","title":"Get clip context","description":"Read clip metadata, readiness, transcript status, and the HTTP API URLs. This works without a browser.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"parameters":{"type":"object","properties":{},"additionalProperties":false},"endpoint":"https://clips.agent-native.com/api/agent-context.json?id=eJO62la0Q1VC","method":"GET","responseType":"application/json"},{"name":"clips-get-transcript","title":"Get clip transcript","description":"Read bounded timestamped transcript segments. Use nextStartIndex to page through long transcripts without losing overlapping segments. For complete transcript text, follow sourceUrl to the HTTP transcript endpoint.","inputSchema":{"type":"object","properties":{"startMs":{"type":"number","minimum":0,"description":"Only return segments that overlap this start time."},"endMs":{"type":"number","minimum":0,"description":"Only return segments that overlap this end time."},"startIndex":{"type":"integer","minimum":0,"description":"Stable segment index for pagination; prefer nextStartIndex from the previous page."},"maxSegments":{"type":"integer","minimum":1,"maximum":50,"description":"Maximum number of transcript segments to return."}},"additionalProperties":false},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"parameters":{"type":"object","properties":{"startMs":{"type":"number","minimum":0,"description":"Only return segments that overlap this start time."},"endMs":{"type":"number","minimum":0,"description":"Only return segments that overlap this end time."},"startIndex":{"type":"integer","minimum":0,"description":"Stable segment index for pagination; prefer nextStartIndex from the previous page."},"maxSegments":{"type":"integer","minimum":1,"maximum":50,"description":"Maximum number of transcript segments to return."}},"additionalProperties":false},"endpoint":"https://clips.agent-native.com/api/agent-transcript.json?id=eJO62la0Q1VC","method":"GET","responseType":"application/json"},{"name":"clips-get-frame","title":"Get clip frame","description":"Get the clip's JPEG frame URL at a requested timestamp. Fetch the returned imageUrl as an image to inspect the video; its scoped access query is already included. On an error, inspect the JSON failureKind and nextStep: access needs a Share with agents link, media means the stored recording media could not be retrieved, processing means the frame request failed and may be retried or reported, unsupported means this source cannot provide frames through Clips and must not be retried, and expired means the owner must update the clip expiry before creating another link.","inputSchema":{"type":"object","properties":{"atMs":{"type":"number","minimum":0,"description":"Video timestamp in milliseconds; fetch the returned imageUrl as an image to inspect the frame."}},"required":["atMs"],"additionalProperties":false},"availability":"ready","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"parameters":{"type":"object","properties":{"atMs":{"type":"number","minimum":0,"description":"Video timestamp in milliseconds; fetch the returned imageUrl as an image to inspect the frame."}},"required":["atMs"],"additionalProperties":false},"endpoint":"https://clips.agent-native.com/api/agent-frame.jpg?id=eJO62la0Q1VC&atMs={atMs}","method":"GET","responseType":"image/jpeg"},{"name":"clips-get-frames","title":"Get clip frame sheet","description":"Get a URL for one JPEG contact sheet of up to 36 consecutive video frames, to watch motion such as an animation or a transition in a single image. Cells read left to right, then top to bottom; cell i shows the frame on screen at startMs + i * 1000 / fps. Solid black cells at the end of the grid hold no frame. The range can span at most 60 seconds. On an error, inspect the JSON failureKind and nextStep; failureKind=request means the range or fps was out of bounds, and nextStep names a request that fits.","inputSchema":{"type":"object","properties":{"startMs":{"type":"number","minimum":0,"description":"Time of the first frame, in milliseconds."},"endMs":{"type":"number","minimum":0,"description":"End of the range in milliseconds (exclusive). Omit it to get up to 36 frames from startMs, stopping at 60 seconds or the end of the clip."},"fps":{"type":"number","minimum":0.1,"maximum":60,"description":"Frames per second to sample. Omit it to use the video's own frame rate, so every frame in the range appears once."}},"required":["startMs"],"additionalProperties":false},"availability":"ready","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"parameters":{"type":"object","properties":{"startMs":{"type":"number","minimum":0,"description":"Time of the first frame, in milliseconds."},"endMs":{"type":"number","minimum":0,"description":"End of the range in milliseconds (exclusive). Omit it to get up to 36 frames from startMs, stopping at 60 seconds or the end of the clip."},"fps":{"type":"number","minimum":0.1,"maximum":60,"description":"Frames per second to sample. Omit it to use the video's own frame rate, so every frame in the range appears once."}},"required":["startMs"],"additionalProperties":false},"endpoint":"https://clips.agent-native.com/api/agent-frames.jpg?id=eJO62la0Q1VC&startMs={startMs}&endMs={endMs}&fps={fps}","method":"GET","responseType":"image/jpeg"}]}},"instructions":["Use transcript.segments for timestamped spoken context.","Use the HTTP URLs in apis for browser-independent access. For complete transcript text, use apis.transcript. If this clip page is already open in a WebMCP-capable browser, list its read-only page tools for bounded access; WebMCP transcript results may omit fullText or be truncated, so follow sourceUrl for the complete transcript.","Keep the exact id and any agent_access query parameter from each supplied URL. When a frame request returns JSON, read failureKind, error, and nextStep. If failureKind=access, explain that the link does not grant access; for a private clip, ask the owner to open the Clips Share menu, choose Share with agents, and send the generated link. If failureKind=media, explain that the stored media could not be retrieved and another share link will not fix it. If failureKind=processing, follow nextStep. When clip.agentReadiness.state is preparing, wait clip.agentReadiness.retryAfterSeconds and fetch apis.context.url before retrying; do not treat the frame as missing media. If failureKind=expired, ask the owner to extend or remove the clip's expiry in the Share menu, save it, then create and send a new Share with agents link. Report the failing frame URL without its agent_access value.","This clip is readable as both text (transcript) and images (JPEG frames) — you can hear AND see it.","To SEE the screen, GET apis.frame.urlTemplate with atMs (returns image/jpeg). Start with recommendedFrames, then fetch additional frames around transcript timestamps that matter for the task. Pass a comment's videoTimestampMs as atMs to see the frame its author was looking at. Older comments were saved rounded down to the whole second, so their frame can be up to a second early. To watch motion (an animation, a transition, a cursor path), GET apis.frames.urlTemplate with startMs, endMs and fps: one JPEG contact sheet of up to 36 consecutive frames, read left to right, then top to bottom. Cell i shows the frame on screen at startMs + i * 1000 / fps. Leave out fps to use the video's own frame rate, so every frame appears once; leave out endMs for up to 36 frames from startMs. Solid black cells at the end of the grid hold no frame. If it returns failureKind=request, follow nextStep."],"clip":{"id":"eJO62la0Q1VC","title":"Design Editor UX Improvements and End-to-End Tests","description":"This PR consolidates UX fixes to make the design editor behave more like Figma and adds end-to-end coverage to prevent regressions such as unwanted black backgrounds. It separates frames from screens, improves resizing and drag-and-drop behavior, supports visible text in dark frames, adds auto-layout and keyboard navigation, and introduces configurable nudging. An additional intensive test suite for the visual edit command is planned.","publicPageUrl":"https://clips.agent-native.com/share/eJO62la0Q1VC","sourceProvider":null,"thumbnailUrl":"https://cdn.builder.io/api/v1/image/assets%2FYJIGb4i01jvw0SRdL5Bt%2Faa2bb59005fc4787ad485c01a2b80337","animatedThumbnailUrl":null,"durationMs":474302,"duration":"474s","width":1280,"height":830,"hasAudio":true,"hasCamera":false,"status":"ready","agentReadiness":{"state":"ready","retryAfterSeconds":null,"instruction":null},"createdAt":"2026-08-10T17:43:59.708Z","updatedAt":"2026-08-10T18:05:04.724Z"},"apis":{"context":{"method":"GET","url":"https://clips.agent-native.com/api/agent-context.json?id=eJO62la0Q1VC"},"transcript":{"method":"GET","url":"https://clips.agent-native.com/api/agent-transcript.json?id=eJO62la0Q1VC"},"frame":{"method":"GET","urlTemplate":"https://clips.agent-native.com/api/agent-frame.jpg?id=eJO62la0Q1VC&atMs={timestampMs}","responseType":"image/jpeg","query":{"atMs":"Video timestamp in milliseconds. The endpoint returns image/jpeg."}},"frames":{"method":"GET","urlTemplate":"https://clips.agent-native.com/api/agent-frames.jpg?id=eJO62la0Q1VC&startMs={startMs}&endMs={endMs}&fps={fps}","responseType":"image/jpeg","maxFrames":36,"maxSpanMs":60000,"query":{"startMs":"Time of the first frame, in milliseconds.","endMs":"Optional end of the range in milliseconds (exclusive). Without it, the sheet holds up to 36 frames from startMs, stopping at 60 seconds or the end of the clip.","fps":"Optional frames per second, from 0.1 to 60. Without it, the sheet uses the video's own frame rate."}}},"transcript":{"status":"ready","language":"en","failureReason":null,"retryAfterSeconds":null,"fullText":"Hello, this PR consolidates a lot of issues that people are facing, along with a lot of minor fixes here and there to make the UX nicer and closer to Figma. It also adds a lot of end-to-end tests.\n\nAs you can see here, I fixed an issue where creating an element outside a screen would create this black background, but the issue somehow made it to production again. Now that we have a lot of end-to-end tests and the system in place, we can make sure that anything we fix doesn't break again. Any features we add can build on top of that.\n\nI'll also try to work on an extensive test suite for the visual editor so that anything we touch here doesn't break there.\n\nFor the changes in this PR, firstly, we introduce the ability to select a frame and a screen separately. Previously, a frame on an empty canvas was treated as a screen, but when you dragged and dropped it inside a screen, it became a frame. Now, you can choose between them because some designers like to draw or play around with frames outside of a screen and move them back when they want to.\n\nThis also fixes the issue where clicking a screen would resize it. Now, it sticks to whichever point you drag it to.\n\nYou can also add text now. Text elements created inside a dark frame are white, so you can see them.\n\nYou can now add a rectangle inside, as well as another text element. If I select this and press Shift+A, you'll see that it automatically applies auto layout. You can change it and play around with it, similar to how Figma does it. You can press Enter and Tab to move between elements.\n\nIf we have this as a column, switching the direction will arrange it up and down, so that stays intact.\n\nI covered the important issues. This was another important one: when you try to move something into a frame, sometimes you can see the message, “Could not move that layer,” because it doesn't know where it's going to drop.\n\nWhat it does is try to find an element, but if you see that we have a position and it's not able to find somewhere to drop, that's the reason it doesn't work. Now, if I have frames with text inside them and try to drag and drop an element into them, it works.\n\nThere's also this nudge feature, where Shift plus an arrow key moves an element 10 pixels in that direction. If you have a few pixels of movement, you can use this. You can change the nudge amount and move the element farther in any direction you want.\n\nSo, yeah.","segments":[{"startMs":1759,"endMs":5999,"timestamp":"0:01","range":"0:01-0:05","text":"Hello, this PR consolidates a lot of","source":"mic"},{"startMs":6646,"endMs":9534,"timestamp":"0:06","range":"0:06-0:09","text":"issues that a lot of people are"},{"startMs":9534,"endMs":12422,"timestamp":"0:09","range":"0:09-0:12","text":"facing, a lot of minor fixes here"},{"startMs":12422,"endMs":14486,"timestamp":"0:12","range":"0:12-0:14","text":"in there just to make"},{"startMs":14486,"endMs":18014,"timestamp":"0:14","range":"0:14-0:18","text":"the UX more nicer and closer to"},{"startMs":18014,"endMs":19526,"timestamp":"0:18","range":"0:18-0:19","text":"Figma and also"},{"startMs":27793,"endMs":32248,"timestamp":"0:27","range":"0:27-0:32","text":"as a lot of end-to-end tests because"},{"startMs":32248,"endMs":34793,"timestamp":"0:32","range":"0:32-0:34","text":"if you see here"},{"startMs":37794,"endMs":40804,"timestamp":"0:37","range":"0:37-0:40","text":"In the day I fixed this issue"},{"startMs":40804,"endMs":43814,"timestamp":"0:40","range":"0:40-0:43","text":"where any element that you create outside"},{"startMs":43814,"endMs":46394,"timestamp":"0:43","range":"0:43-0:46","text":"is to create this black background"},{"startMs":46394,"endMs":51114,"timestamp":"0:46","range":"0:46-0:51","text":"but it also somehow got","source":"mic"},{"startMs":51224,"endMs":52368,"timestamp":"0:51","range":"0:51-0:52","text":"to prod again."},{"startMs":52368,"endMs":55036,"timestamp":"0:52","range":"0:52-0:55","text":"So now after we have like a"},{"startMs":55036,"endMs":57704,"timestamp":"0:55","range":"0:55-0:57","text":"lot of end to end test and"},{"startMs":58593,"endMs":62433,"timestamp":"0:58","range":"0:58-1:02","text":"the system in place we can","source":"mic"},{"startMs":65222,"endMs":68547,"timestamp":"1:05","range":"1:05-1:08","text":"Make sure that anything that we fix"},{"startMs":68547,"endMs":69972,"timestamp":"1:08","range":"1:08-1:09","text":"doesn't break again."},{"startMs":69972,"endMs":72822,"timestamp":"1:09","range":"1:09-1:12","text":"So any feature that we add"},{"startMs":74445,"endMs":77925,"timestamp":"1:14","range":"1:14-1:17","text":"and just build up on that.","source":"mic"},{"startMs":78756,"endMs":80756,"timestamp":"1:18","range":"1:18-1:20","text":"So yeah","source":"mic"},{"startMs":82137,"endMs":85824,"timestamp":"1:22","range":"1:22-1:25","text":"show you. Also I'll try to work"},{"startMs":85824,"endMs":88457,"timestamp":"1:25","range":"1:25-1:28","text":"on an intense suite for"},{"startMs":89226,"endMs":93071,"timestamp":"1:29","range":"1:29-1:33","text":"the visual edit command so that anything"},{"startMs":93071,"endMs":96916,"timestamp":"1:33","range":"1:33-1:36","text":"that we touch over here doesn't break"},{"startMs":96916,"endMs":97466,"timestamp":"1:36","range":"1:36-1:37","text":"there."},{"startMs":97466,"endMs":101895,"timestamp":"1:37","range":"1:37-1:41","text":"But for the changes in this PR,"},{"startMs":101895,"endMs":104426,"timestamp":"1:41","range":"1:41-1:44","text":"firstly we introduce this."},{"startMs":106401,"endMs":110709,"timestamp":"1:46","range":"1:46-1:50","text":"where you can select frame and screen"},{"startMs":110709,"endMs":114401,"timestamp":"1:50","range":"1:50-1:54","text":"distinctively which was one issue because"},{"startMs":117404,"endMs":119404,"timestamp":"1:57","range":"1:57-1:59","text":"nos estaremos...","source":"mic"},{"startMs":120439,"endMs":122439,"timestamp":"2:00","range":"2:00-2:02","text":"Three was what?","source":"mic"},{"startMs":123943,"endMs":127639,"timestamp":"2:03","range":"2:03-2:07","text":"frame on an empty canvas was a"},{"startMs":127639,"endMs":129223,"timestamp":"2:07","range":"2:07-2:09","text":"screen but when"},{"startMs":130542,"endMs":133902,"timestamp":"2:10","range":"2:10-2:13","text":"drag and drop inside our screen was"},{"startMs":133902,"endMs":137262,"timestamp":"2:13","range":"2:13-2:17","text":"a frame previously but right now you"},{"startMs":137262,"endMs":138222,"timestamp":"2:17","range":"2:17-2:18","text":"just have"},{"startMs":138222,"endMs":141142,"timestamp":"2:18","range":"2:18-2:21","text":"the ability to","source":"mic"},{"startMs":140250,"endMs":143432,"timestamp":"2:20","range":"2:20-2:23","text":"choose between them because some of the"},{"startMs":143432,"endMs":145250,"timestamp":"2:23","range":"2:23-2:25","text":"designers like to draw"},{"startMs":145694,"endMs":148998,"timestamp":"2:25","range":"2:25-2:28","text":"have or play around with frames outside"},{"startMs":148998,"endMs":152302,"timestamp":"2:28","range":"2:28-2:32","text":"of a screen and move it back"},{"startMs":152302,"endMs":155134,"timestamp":"2:32","range":"2:32-2:35","text":"when they would like it to."},{"startMs":155134,"endMs":160118,"timestamp":"2:35","range":"2:35-2:40","text":"Also fixes the issue where when you"},{"startMs":160118,"endMs":162254,"timestamp":"2:40","range":"2:40-2:42","text":"try to click"},{"startMs":162249,"endMs":166382,"timestamp":"2:42","range":"2:42-2:46","text":"screen it grows it out."},{"startMs":166382,"endMs":167209,"timestamp":"2:46","range":"2:46-2:47","text":"Now"},{"startMs":167301,"endMs":172201,"timestamp":"2:47","range":"2:47-2:52","text":"at the sticks to whichever point you"},{"startMs":172201,"endMs":174301,"timestamp":"2:52","range":"2:52-2:54","text":"dragged at two."},{"startMs":176759,"endMs":180181,"timestamp":"2:56","range":"2:56-3:00","text":"like that and also you can add"},{"startMs":180181,"endMs":181159,"timestamp":"3:00","range":"3:00-3:01","text":"text now."},{"startMs":183183,"endMs":189190,"timestamp":"3:03","range":"3:03-3:09","text":"Oh, yeah, so text elements created inside"},{"startMs":189190,"endMs":192623,"timestamp":"3:09","range":"3:09-3:12","text":"of a darker frame."},{"startMs":193817,"endMs":195817,"timestamp":"3:13","range":"3:13-3:15","text":"V B.","source":"mic"},{"startMs":197351,"endMs":200864,"timestamp":"3:17","range":"3:17-3:20","text":"white in color so you can now"},{"startMs":200864,"endMs":202871,"timestamp":"3:20","range":"3:20-3:22","text":"see apart from that"},{"startMs":204197,"endMs":205197,"timestamp":"3:24","range":"3:24-3:25","text":"Um...","source":"mic"},{"startMs":205798,"endMs":207798,"timestamp":"3:25","range":"3:25-3:27","text":"You can now","source":"mic"},{"startMs":208363,"endMs":209363,"timestamp":"3:28","range":"3:28-3:29","text":"me.","source":"mic"},{"startMs":211226,"endMs":215226,"timestamp":"3:31","range":"3:31-3:35","text":"and rectangle inside also another text","source":"mic"},{"startMs":215844,"endMs":219844,"timestamp":"3:35","range":"3:35-3:39","text":"right and if I now say","source":"mic"},{"startMs":219139,"endMs":222321,"timestamp":"3:39","range":"3:39-3:42","text":"select this and shift A."},{"startMs":222321,"endMs":226139,"timestamp":"3:42","range":"3:42-3:46","text":"You will see that it auto-layouted."},{"startMs":226139,"endMs":229139,"timestamp":"3:46","range":"3:46-3:49","text":"Auto-layouted. So you can now","source":"mic"},{"startMs":231550,"endMs":234792,"timestamp":"3:51","range":"3:51-3:54","text":"change it and play around with it."},{"startMs":234792,"endMs":238034,"timestamp":"3:54","range":"3:54-3:58","text":"Similar to how Figma does it and"},{"startMs":238034,"endMs":240350,"timestamp":"3:58","range":"3:58-4:00","text":"now you can press Enter,"},{"startMs":240350,"endMs":246910,"timestamp":"4:00","range":"4:00-4:06","text":"Tabs to go between elements and also","source":"mic"},{"startMs":1023,"endMs":5472,"timestamp":"0:01","range":"0:01-0:05","text":"So if we have this as column"},{"startMs":5472,"endMs":9921,"timestamp":"0:05","range":"0:05-0:09","text":"up and down will switch it so"},{"startMs":9921,"endMs":12463,"timestamp":"0:09","range":"0:09-0:12","text":"yeah that stays intact."},{"startMs":18936,"endMs":20936,"timestamp":"0:18","range":"0:18-0:20","text":"ونعوى سمدر","source":"mic"},{"startMs":22016,"endMs":24016,"timestamp":"0:22","range":"0:22-0:24","text":"Issues?","source":"mic"},{"startMs":24847,"endMs":25847,"timestamp":"0:24","range":"0:24-0:25","text":"And...","source":"mic"},{"startMs":27095,"endMs":30135,"timestamp":"0:27","range":"0:27-0:30","text":"I covered the important ones.","source":"mic"},{"startMs":30135,"endMs":33655,"timestamp":"0:30","range":"0:30-0:33","text":"Yeah, this one was an important one.","source":"mic"},{"startMs":33655,"endMs":37738,"timestamp":"0:33","range":"0:33-0:37","text":"I think where if you try to"},{"startMs":37738,"endMs":40655,"timestamp":"0:37","range":"0:37-0:40","text":"move something into a frame,"},{"startMs":40655,"endMs":42095,"timestamp":"0:40","range":"0:40-0:42","text":"sometimes,","source":"mic"},{"startMs":42793,"endMs":46526,"timestamp":"0:42","range":"0:42-0:46","text":"Yeah, you can see could not move"},{"startMs":46526,"endMs":50259,"timestamp":"0:46","range":"0:46-0:50","text":"that layer because it doesn't know where"},{"startMs":50259,"endMs":52393,"timestamp":"0:50","range":"0:50-0:52","text":"it's going to drop."},{"startMs":52622,"endMs":54622,"timestamp":"0:52","range":"0:52-0:54","text":"잘하셨습니다.","source":"mic"},{"startMs":57616,"endMs":60616,"timestamp":"0:57","range":"0:57-1:00","text":"What it does is tries to","source":"mic"},{"startMs":66107,"endMs":71551,"timestamp":"1:06","range":"1:06-1:11","text":"find an element but if you see"},{"startMs":71551,"endMs":73107,"timestamp":"1:11","range":"1:11-1:13","text":"we have"},{"startMs":72174,"endMs":76174,"timestamp":"1:12","range":"1:12-1:16","text":"opposition but it's not able to...","source":"mic"},{"startMs":76332,"endMs":78999,"timestamp":"1:16","range":"1:16-1:18","text":"So they're out there to drop and"},{"startMs":78999,"endMs":81666,"timestamp":"1:18","range":"1:18-1:21","text":"that's the reason it's not working but"},{"startMs":81666,"endMs":84332,"timestamp":"1:21","range":"1:21-1:24","text":"now if I have like frames and"},{"startMs":85193,"endMs":87713,"timestamp":"1:25","range":"1:25-1:27","text":"text inside of it.","source":"mic"},{"startMs":88649,"endMs":92649,"timestamp":"1:28","range":"1:28-1:32","text":"and try to drag and drop into","source":"mic"},{"startMs":95822,"endMs":98002,"timestamp":"1:35","range":"1:35-1:38","text":"and textment.","source":"mic"},{"startMs":102211,"endMs":103211,"timestamp":"1:42","range":"1:42-1:43","text":"Yeah.","source":"mic"},{"startMs":106823,"endMs":107823,"timestamp":"1:46","range":"1:46-1:47","text":"As you go.","source":"mic"},{"startMs":125363,"endMs":126363,"timestamp":"2:05","range":"2:05-2:06","text":"Interesting.","source":"mic"},{"startMs":159877,"endMs":161877,"timestamp":"2:39","range":"2:39-2:41","text":"to fix that and","source":"mic"},{"startMs":165713,"endMs":168989,"timestamp":"2:45","range":"2:45-2:48","text":"Yeah, also this nudge feature where shift"},{"startMs":168989,"endMs":172265,"timestamp":"2:48","range":"2:48-2:52","text":"place arrow will move it 10 pixel"},{"startMs":172265,"endMs":175073,"timestamp":"2:52","range":"2:52-2:55","text":"down and also if you have"},{"startMs":176356,"endMs":177356,"timestamp":"2:56","range":"2:56-2:57","text":"a few.","source":"mic"},{"startMs":179489,"endMs":181489,"timestamp":"2:59","range":"2:59-3:01","text":"Use this.","source":"mic"},{"startMs":181519,"endMs":184319,"timestamp":"3:01","range":"3:01-3:04","text":"I think it's so weird.","source":"mic"},{"startMs":194700,"endMs":196116,"timestamp":"3:14","range":"3:14-3:16","text":"Yeah, somewhere here,"},{"startMs":196116,"endMs":199420,"timestamp":"3:16","range":"3:16-3:19","text":"so cursor and you can change the"},{"startMs":199420,"endMs":201780,"timestamp":"3:19","range":"3:19-3:21","text":"big nudge and you can"},{"startMs":205428,"endMs":208290,"timestamp":"3:25","range":"3:25-3:28","text":"move it more to any direction that"},{"startMs":208290,"endMs":209108,"timestamp":"3:28","range":"3:28-3:29","text":"you want."},{"startMs":210830,"endMs":212830,"timestamp":"3:30","range":"3:30-3:32","text":"So yeah.","source":"mic"}],"segmentCount":109},"comments":[],"commentCount":0,"commentsTruncated":false,"reactions":[],"reactionCount":0,"reactionsTruncated":false,"chapters":[],"recommendedFrames":[{"atMs":0,"timestamp":"0:00","reason":"opening frame","url":"https://clips.agent-native.com/api/agent-frame.jpg?id=eJO62la0Q1VC&atMs=0"},{"atMs":12422,"timestamp":"0:12","reason":"transcript: in there just to make","url":"https://clips.agent-native.com/api/agent-frame.jpg?id=eJO62la0Q1VC&atMs=12422"},{"atMs":27793,"timestamp":"0:27","reason":"transcript: as a lot of end-to-end tests because","url":"https://clips.agent-native.com/api/agent-frame.jpg?id=eJO62la0Q1VC&atMs=27793"},{"atMs":40804,"timestamp":"0:40","reason":"transcript: where any element that you create outside","url":"https://clips.agent-native.com/api/agent-frame.jpg?id=eJO62la0Q1VC&atMs=40804"},{"atMs":55036,"timestamp":"0:55","reason":"transcript: lot of end to end test and","url":"https://clips.agent-native.com/api/agent-frame.jpg?id=eJO62la0Q1VC&atMs=55036"},{"atMs":68547,"timestamp":"1:08","reason":"transcript: doesn't break again.","url":"https://clips.agent-native.com/api/agent-frame.jpg?id=eJO62la0Q1VC&atMs=68547"},{"atMs":82137,"timestamp":"1:22","reason":"transcript: show you. Also I'll try to work","url":"https://clips.agent-native.com/api/agent-frame.jpg?id=eJO62la0Q1VC&atMs=82137"},{"atMs":96916,"timestamp":"1:36","reason":"transcript: there.","url":"https://clips.agent-native.com/api/agent-frame.jpg?id=eJO62la0Q1VC&atMs=96916"},{"atMs":110709,"timestamp":"1:50","reason":"transcript: distinctively which was one issue because","url":"https://clips.agent-native.com/api/agent-frame.jpg?id=eJO62la0Q1VC&atMs=110709"},{"atMs":123943,"timestamp":"2:03","reason":"transcript: frame on an empty canvas was a","url":"https://clips.agent-native.com/api/agent-frame.jpg?id=eJO62la0Q1VC&atMs=123943"}],"bugReport":null,"browserDiagnostics":null,"appActivity":null,"ctas":[]}