diff --git a/.github/workflows/deploy-lab-catalog.yml b/.github/workflows/deploy-lab-catalog.yml deleted file mode 100644 index fb5b7634f2b..00000000000 --- a/.github/workflows/deploy-lab-catalog.yml +++ /dev/null @@ -1,49 +0,0 @@ -name: deploy-lab-catalog - -on: - push: - branches: [v2] - paths: - - ".github/workflows/deploy-lab-catalog.yml" - - "bun.lock" - - "package.json" - - "packages/drive/**" - - "packages/protocol/src/simulation.ts" - - "packages/simulation/**" - - "packages/lab/catalog/**" - workflow_dispatch: - -concurrency: - group: deploy-lab-catalog-${{ github.ref_name }} - cancel-in-progress: false - -permissions: - contents: read - -jobs: - deploy: - if: github.repository == 'anomalyco/opencode' && github.ref_name == 'v2' - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 - - - uses: ./.github/actions/setup-bun - - - name: Install ffmpeg - run: | - sudo apt-get update - sudo apt-get install --yes ffmpeg - - - name: Validate - run: | - bun --cwd packages/protocol typecheck - bun --cwd packages/simulation typecheck - bun --cwd packages/drive run check - bun --cwd packages/drive run test - bun --cwd packages/lab/catalog run check - - - name: Deploy - working-directory: packages/lab/catalog - run: bun run deploy - env: - CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 5dce1b33f04..cf495355acc 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -72,7 +72,7 @@ jobs: - name: Run unit tests timeout-minutes: 20 - run: GITHUB_ACTIONS=false bun turbo test ${{ runner.os == 'Windows' && '--filter=!opencode-drive' || '' }} + run: GITHUB_ACTIONS=false bun turbo test env: OPENCODE_EXPERIMENTAL_DISABLE_FILEWATCHER: ${{ runner.os == 'Windows' && 'true' || 'false' }} diff --git a/.opencode/skills/opencode-drive/SKILL.md b/.opencode/skills/opencode-drive/SKILL.md deleted file mode 100644 index 371a1ef9151..00000000000 --- a/.opencode/skills/opencode-drive/SKILL.md +++ /dev/null @@ -1,253 +0,0 @@ ---- -name: opencode-drive -description: Use when an agent needs drive OpenCode via a script or interact with an isolated instance ---- - -# OpenCode Drive - -Use `opencode-drive` to launch an isolated OpenCode instance and control it via commands or a script. - -There are two modes. Always default to using a script unless specifically directed to be interactive (connect -to an existing running instance, or start a new one, and make a few changes to the UI and read it, and iterate -on changes). - -Scripts allow you to run a full walkthrough in one run. When the script is done opencode-drive exits, -stops all processes, and cleans up all artifacts. - -# Prepare The Environment - -Use `init` when files must be added to the isolated home or project before OpenCode starts. It prints the artifact directory without launching OpenCode. A later `start` with the same name reuses it. - -```bash -artifacts=$(opencode-drive init --name demo) -cp -R ./fixtures/home/. "$artifacts/" -cp -R ./fixtures/project/. "$artifacts/files/" -opencode-drive start --name demo --dev ~/projects/opencode -``` - -The simulated project is under `$artifacts/files`. Running `start` without a prior `init` initializes the artifacts automatically. - -# Scripted usage - -You can write scripts that walk through entire flows, and gives you full access to controlling -the backend too. See examples of the script API at the bottom of this file. - -After creating or editing a script, always typecheck it before running. Never skip this step: - -```bash -opencode-drive check ./reproduce-stale-exploring-empty.ts -``` - -Run it by passing `--script` to start: - -```bash -opencode-drive start --name auto-stop-reproduction --script ./reproduce-stale-exploring-empty.ts -``` - -It will output information about the run, including paths to log files which you can read -to inspect what happened. If you need to dig into failures that aren't clear, read those log -files. If the script is unsuccessful, automatically fix the script and run it again. - -Scripts use one typed definition object. `setup` runs before OpenCode starts, -and `fs.writeFile` always writes inside the simulated project. - -You can read the full typed API here: https://raw.githubusercontent.com/anomalyco/opencode/v2/packages/drive/src/script/types.ts - -```ts -import { defineScript } from "opencode-drive" - -export default defineScript({ - async setup({ fs, config }) { - config.autoupdate = false - await fs.writeFile("src/example.ts", "export const value = 1\n") - }, - - async run({ ui, llm }) { - await ui.submit("Open src/example.ts") - await llm.send(llm.text("The file exports `value`.")) - await ui.waitFor("The file exports `value`.") - }, -}) -``` - -`setup` receives the current OpenCode config object, which starts from the -default drive config unless the prepared instance already has one. When a script -needs custom config, mutate this `config` parameter instead of generating and -writing a new config object from scratch, so the script keeps the default -provider/model settings unless it intentionally changes them. - -Note that the simulated model is a GPT model type, and opencode uses the `patch` tool for working with files Do not use a `edit` or `write` tool to edit files. - -Use `launch: "manual"` when the script needs to launch the server and every TUI -itself (this is extremely rare, do not use this unless explicitly asked). In this -mode `ui` is typed as `null`; call `server.launch()` exactly -once before launching clients. Each `clients.launch(name)` result provides the -same UI methods as the automatic client. You can see an example of this API -here: https://raw.githubusercontent.com/anomalyco/opencode/v2/packages/drive/examples/multiple-clients.ts - -Use the exported `wait(milliseconds)` utility for an unconditional delay. - -`await llm.send(...)` waits for the next request and resolves after OpenCode -acknowledges its complete response. `llm.queue(...)` declares responses in -advance. Chunks may be built with `text`, `reasoning`, `toolCall`, `raw`, -`finish`, and `disconnect`. A normal response receives `finish("stop")` -automatically unless it yields or queues an explicit terminal event. - -`llm.text(text, { delay, chunkSize })` defaults to a 2 ms delay and a -15-character target varied by plus or minus 5 per chunk. - -`llm.reasoning` accepts the same options, and `llm.pause(milliseconds)` adds a -delay between any two outputs. - -Use `llm.serve` for an ongoing typed response generator: - -```ts -llm.serve(async function* (request, index) { - yield llm.reasoning(`Handling request ${index + 1}`) - yield llm.text(`Received ${request.id}`) - yield llm.finish("stop") -}) -``` - -The backend connection, response cleanup, cancellation, and recording -completion are automatic. - -You can see some example scripts here: - -- https://raw.githubusercontent.com/anomalyco/opencode/v2/packages/drive/examples/simple.ts -- https://raw.githubusercontent.com/anomalyco/opencode/v2/packages/drive/examples/serve.ts - -## Prune - -- `prune` removes artifact directories. These are always cleaned up after running a script - successfully, but leftover on failed runs. Always call this if a script fails. - -```bash -opencode-drive prune --name demo - -// --force cleans up all artifcat directories -opencode-dirve prune --force -``` - -# Live interaction usage - -- Always give headless instances a unique `--name`. Visible instances may omit it. -- A normal headless `start` detaches automatically and returns after the instance is ready. -- Do not add `&`; the long-running owner already runs in the background. -- Configure simulated model responses after startup when needed. -- Send ordered UI commands with `send`. -- Always stop the instance when finished. - -```bash -opencode-drive start --name demo - -opencode-drive send --name demo \ - --command.ui.type '{"text":"Explain this project"}' \ - --command.ui.enter - -opencode-drive stop --name demo -``` - -## Send UI Commands - -- Every `send` opens a connection to the named instance, runs its commands in order, and exits. -- Combine typing and Enter in one command when submitting a prompt. -- JSON-valued commands require one JSON argument. -- Multiple command flags execute from left to right. - -Commands: - -- `--command.ui.type ` types into the focused editor. Arguments: `text` string. -- `--command.ui.press ` presses a key. Arguments: `key` string; optional `modifiers` object with boolean `ctrl`, `shift`, `meta`, `super`, or `hyper`. -- `--command.ui.enter` presses Enter. Arguments: none. -- `--command.ui.arrow ` presses an arrow key. Arguments: `direction` is `up`, `down`, `left`, or `right`. -- `--command.ui.focus ` focuses an element. Arguments: `target` is the numeric element `num` returned by `ui.state`. -- `--command.ui.click ` clicks an element. Arguments: numeric `target`, `x`, and `y`; use the element `num` returned by `ui.state` as `target`. -- `--command.ui.state` prints focus and interactive element metadata as JSON. Arguments: none. -- `--command.ui.matches ` prints whether literal, case-sensitive text appears on screen. Arguments: `text` string. - -```bash -opencode-drive send --name demo \ - --command.ui.type '{"text":"Find the relevant code and explain it"}' \ - --command.ui.enter - -opencode-drive send --name demo \ - --command.ui.press '{"key":"p","modifiers":{"ctrl":true}}' - -opencode-drive send --name demo \ - --command.ui.arrow '{"direction":"down"}' - -opencode-drive send --name demo \ - --command.ui.focus '{"target":12}' - -opencode-drive send --name demo \ - --command.ui.click '{"target":12,"x":4,"y":1}' - -opencode-drive send --name demo \ - --command.ui.matches '{"text":"OpenCode"}' -``` - -To read the UI state and see information about interactable elements, use the `ui.state` command: - -```bash -opencode-drive send --name demo --command.ui.state -``` - -## Configure LLM Responses - -- `responses` controls what the LLM responds with -- Only use this if you are wanting to reproduce an exact type of response -- Defaults are `text,reasoning,diff,tool` with `write,apply_patch`. -- Supported types are `text`, `reasoning`, `diff`, and `tool`. -- `--tools` limits generated tool calls to names offered by OpenCode. - -```bash -opencode-drive responses --name demo \ - --types text,reasoning,diff,tool \ - --tools write,apply_patch - -opencode-drive responses --name demo \ - --types tool \ - --tools read,glob,grep -``` - -## Inspect The UI - -- `ui.state` prints focus and interactive element metadata as JSON. -- `ui.matches` checks for literal, case-sensitive screen text. -- `screenshot` prints the generated image path. - -```bash -opencode-drive screenshot --name demo -``` - -## Lifecycle - -- `stop` waits for recording export and owner cleanup before returning. - -```bash -opencode-drive stop --name demo -``` - -# Record The UI - -- Start with `--record` to capture a headless instance from its first rendered frame. -- `stop` finishes the recording, exports an MP4, and prints its path. - -```bash -opencode-drive start --name demo --record - -opencode-drive send --name demo \ - --command.ui.type '{"text":"Show me the current architecture"}' \ - --command.ui.enter - -opencode-drive stop --name demo -``` - -# Artifacts dir - -- `dir` prints the artifact directory for the instance. - -```bash -opencode-drive dir --name demo -``` diff --git a/bun.lock b/bun.lock index 6291c02b38e..df60bc5e7a8 100644 --- a/bun.lock +++ b/bun.lock @@ -465,31 +465,6 @@ "@parcel/watcher-win32-x64": "2.5.1", }, }, - "packages/drive": { - "name": "opencode-drive", - "version": "1.4.3", - "bin": { - "opencode-drive": "bin/opencode-drive", - }, - "dependencies": { - "@effect/platform-node": "catalog:", - "@napi-rs/canvas": "1.0.2", - "@opencode-ai/client": "workspace:*", - "@opencode-ai/protocol": "workspace:*", - "@types/bun": "catalog:", - "@typescript/native-preview": "catalog:", - "@wterm/core": "0.3.0", - "@wterm/ghostty": "0.3.0", - "effect": "catalog:", - }, - "devDependencies": { - "@effect/vitest": "4.0.0-beta.101", - "@tsconfig/bun": "catalog:", - "oxlint": "1.60.0", - "typescript": "catalog:", - "vitest": "4.1.10", - }, - }, "packages/enterprise": { "name": "@opencode-ai/enterprise", "version": "1.18.15", @@ -571,27 +546,6 @@ "@typescript/native-preview": "catalog:", }, }, - "packages/lab/catalog": { - "name": "@opencode-ai/lab-catalog", - "dependencies": { - "@fontsource/commit-mono": "5.2.5", - "@fontsource/noto-sans-math": "5.2.8", - "@fontsource/noto-sans-symbols": "5.2.8", - "@fontsource/noto-sans-symbols-2": "5.2.8", - "react": "^19.2.7", - "react-dom": "^19.2.7", - }, - "devDependencies": { - "@napi-rs/canvas": "1.0.2", - "@types/bun": "catalog:", - "@types/react": "^19.2.17", - "@types/react-dom": "^19.2.3", - "effect": "catalog:", - "opencode-drive": "workspace:*", - "typescript": "^7.0.2", - "wrangler": "4.110.0", - }, - }, "packages/merman": { "name": "@opencode-ai/merman", "version": "0.0.0", @@ -1635,8 +1589,6 @@ "@effect/sql-sqlite-bun": ["@effect/sql-sqlite-bun@4.0.0-beta.101", "", { "peerDependencies": { "effect": "^4.0.0-beta.101" } }, "sha512-s6AC7LXCEjCN+nKegKFY4MOi6bmT1+SLR9YHEYwhY3P5qyQQB4R5yYLgt+3J4EPp5fa3t4FIDdPEUwz9LdKm6g=="], - "@effect/vitest": ["@effect/vitest@4.0.0-beta.101", "", { "peerDependencies": { "effect": "^4.0.0-beta.101", "vitest": "^3.0.0 || ^4.0.0" } }, "sha512-F5Ur8pZYti0xkZFyb4hPZt8RrKQ1XBoC28ZkKxc7N1iPbhE9fWOvlWA1NC2XlN2wWG08yb5g5jR53LdOxjlhpQ=="], - "@electron/asar": ["@electron/asar@3.4.1", "", { "dependencies": { "commander": "^5.0.0", "glob": "^7.1.6", "minimatch": "^3.0.4" }, "bin": { "asar": "bin/asar.js" } }, "sha512-i4/rNPRS84t0vSRa2HorerGRXWyF4vThfHesw0dmcWHp+cspK743UanA0suA5Q5y8kzY2y6YKrvbIUn69BCAiA=="], "@electron/fuses": ["@electron/fuses@1.8.0", "", { "dependencies": { "chalk": "^4.1.1", "fs-extra": "^9.0.1", "minimist": "^1.2.5" }, "bin": { "electron-fuses": "dist/bin.js" } }, "sha512-zx0EIq78WlY/lBb1uXlziZmDZI4ubcCXIMJ4uGjXzZW0nS19TjSPeXPAjzzTmKQlJUZm0SbmZhPKP7tuQ1SsEw=="], @@ -1769,18 +1721,10 @@ "@floating-ui/utils": ["@floating-ui/utils@0.2.12", "", {}, "sha512-HpCo8tmWzLVad5s2d19EhAz5zqrrQ6s69qd6moPMQvkOuSwDT1YgRfWSVuc4ennqrgv3OHppiOGMQ7oC13yIww=="], - "@fontsource/commit-mono": ["@fontsource/commit-mono@5.2.5", "", {}, "sha512-htX8yQWtiPt5L1Hzh4sirvfUJT2+KYiquDB/Q2sY2tWQYplpBUOD5zHnIM3k36Hnm4V+JIIqA/wmwupSQ68WjA=="], - "@fontsource/ibm-plex-mono": ["@fontsource/ibm-plex-mono@5.2.5", "", {}, "sha512-G09N3GfuT9qj3Ax2FDZvKqZttzM3v+cco2l8uXamhKyXLdmlaUDH5o88/C3vtTHj2oT7yRKsvxz9F+BXbWKMYA=="], "@fontsource/inter": ["@fontsource/inter@5.3.0", "", {}, "sha512-RofMylZmjlJEfELXeNHFWBRcSs75rGU/6bV2S2jfnvv/3rPXPGe0LgUJTklcHZ9lM4OZmAVFhcJPnACfb91A3g=="], - "@fontsource/noto-sans-math": ["@fontsource/noto-sans-math@5.2.8", "", {}, "sha512-LKP8MXf5if2NoQcpgkIWS3SKGk7b4IZCLKTTHEFmHuy1g/n5KKg21+wk4cTKEoJZtHaMo13jwd4Hw8TWxaz8gQ=="], - - "@fontsource/noto-sans-symbols": ["@fontsource/noto-sans-symbols@5.2.8", "", {}, "sha512-x5U4btr3+aveZWNXK24tG3jvds7RRTg4diQ0D9nvZQxxtskbXVFEBP7Iok8TS86R9XHyg1TBS5GoR+ZLZSF5fw=="], - - "@fontsource/noto-sans-symbols-2": ["@fontsource/noto-sans-symbols-2@5.2.8", "", {}, "sha512-OGKq1CaSIszlSBc4Ie2XPBS8yFfF1fMfzjjoRRfpijjgjk1Xg/WSo/3Bg0cJdoxxIdQ0a2XENzJHhfpWLNv5Lw=="], - "@gar/promise-retry": ["@gar/promise-retry@1.0.3", "", {}, "sha512-GmzA9ckNokPypTg10pgpeHNQe7ph+iIKKmhKu3Ob9ANkswreCx7R3cKmY781K8QK3AqVL3xVh9A42JvIAbkkSA=="], "@graphql-typed-document-node/core": ["@graphql-typed-document-node/core@3.2.0", "", { "peerDependencies": { "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ=="], @@ -1981,30 +1925,6 @@ "@msgpackr-extract/msgpackr-extract-win32-x64": ["@msgpackr-extract/msgpackr-extract-win32-x64@3.0.4", "", { "os": "win32", "cpu": "x64" }, "sha512-CmCXPQrkbwExx3j946/PtHWHbYJiCRBRDl4BlkRQcJB/YOwQxJRTpoo7aTsortjgoJ1x7opzTSxn7C+ASSLVjQ=="], - "@napi-rs/canvas": ["@napi-rs/canvas@1.0.2", "", { "optionalDependencies": { "@napi-rs/canvas-android-arm64": "1.0.2", "@napi-rs/canvas-darwin-arm64": "1.0.2", "@napi-rs/canvas-darwin-x64": "1.0.2", "@napi-rs/canvas-linux-arm-gnueabihf": "1.0.2", "@napi-rs/canvas-linux-arm64-gnu": "1.0.2", "@napi-rs/canvas-linux-arm64-musl": "1.0.2", "@napi-rs/canvas-linux-riscv64-gnu": "1.0.2", "@napi-rs/canvas-linux-x64-gnu": "1.0.2", "@napi-rs/canvas-linux-x64-musl": "1.0.2", "@napi-rs/canvas-win32-arm64-msvc": "1.0.2", "@napi-rs/canvas-win32-x64-msvc": "1.0.2" } }, "sha512-EYEqlMYaCbpZDz+IgDH5xp9MTd3ui4dmGqbQYryhMLnSRxrhHKq5KQWHHKxFUcEP4Hp8/BWgvqXocX4j7iSbOQ=="], - - "@napi-rs/canvas-android-arm64": ["@napi-rs/canvas-android-arm64@1.0.2", "", { "os": "android", "cpu": "arm64" }, "sha512-IMXKVQod0ol4vt3gmClUfXz4JAgHYESGPCUqmH3lQxBoL0K/2greJaQE1HVBVxWWFKfLc4OLZVdxg7kXVyXv+g=="], - - "@napi-rs/canvas-darwin-arm64": ["@napi-rs/canvas-darwin-arm64@1.0.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-Sc8tPi6cF+5lqOzCCKFALJHhDiRwyMzTPYm3bbhdXsOunU0lQO5f05ucyOzN2r55I23Hg5bsjH63uSCvWp3EgQ=="], - - "@napi-rs/canvas-darwin-x64": ["@napi-rs/canvas-darwin-x64@1.0.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-niDXZ9LhKB1zLrUdYB64RHQFDGz9rr0eGx061qtJJU3U20EMMIx28ADF5fVYbhtOgkWQrBjFicfaye1yM0U62A=="], - - "@napi-rs/canvas-linux-arm-gnueabihf": ["@napi-rs/canvas-linux-arm-gnueabihf@1.0.2", "", { "os": "linux", "cpu": "arm" }, "sha512-sgatQL9JxGRH/Amzcvu0P3t8Am3duou74CisfuJ41Dwt8cWy723z/9KZ8LlgmxfypEwEZxSTNFJtU8d281lmhQ=="], - - "@napi-rs/canvas-linux-arm64-gnu": ["@napi-rs/canvas-linux-arm64-gnu@1.0.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-dgKuX0peF3xwY6ZF5QxGS4wbfDqpoFAJYXiLSp+guZKARQUKMkRqZSDrXKj7nfrec3UCMzC0PFCPte0ES98AiA=="], - - "@napi-rs/canvas-linux-arm64-musl": ["@napi-rs/canvas-linux-arm64-musl@1.0.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-qwROoDIC9upfvDoRLuPn2aNg9CGW1x0Ygr4k2Or+8paA9d0qBLwk87U+g8KQpoOviKoPoiwl97kvBYuYD7qZoA=="], - - "@napi-rs/canvas-linux-riscv64-gnu": ["@napi-rs/canvas-linux-riscv64-gnu@1.0.2", "", { "os": "linux", "cpu": "none" }, "sha512-fXRjnPihdnbO6qy1QQOgxAonb68A0TCEG7rj1x7v7rxNElsE8EVIKIEUTvyDtU+sthYSbX+8e7g3oZiLGnOmxw=="], - - "@napi-rs/canvas-linux-x64-gnu": ["@napi-rs/canvas-linux-x64-gnu@1.0.2", "", { "os": "linux", "cpu": "x64" }, "sha512-nPR97DXhbWIAy7yazF3jc06kEPMqYMLmPzFOVNlwKPfIoSChnI+x7dc0hTLaihz3jxrjL6j4BbA7earxfx4X3g=="], - - "@napi-rs/canvas-linux-x64-musl": ["@napi-rs/canvas-linux-x64-musl@1.0.2", "", { "os": "linux", "cpu": "x64" }, "sha512-l7zZY5+jL5qnBZtDz7CoBtY6p7EkHu422g/0zWwrOrzIwWyWxZFRfZZORY1UG7YApymPLx+UbOkN206xXn/c1Q=="], - - "@napi-rs/canvas-win32-arm64-msvc": ["@napi-rs/canvas-win32-arm64-msvc@1.0.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-yE0koHCFF4PIbMc2o2SEALhnipz7WBISh5glLvQiomtIoCcW0np3H4Lw93ceJAfJttTTeIIWFbwH84F7EVzjMQ=="], - - "@napi-rs/canvas-win32-x64-msvc": ["@napi-rs/canvas-win32-x64-msvc@1.0.2", "", { "os": "win32", "cpu": "x64" }, "sha512-okU8/t2foV6C31n0GtvEMbfD5rOFc70+/6xUNME9Guld29sgSOIGUEDScAWFlcP3k5TYQRl9TNkwJEEjh15w8A=="], - "@napi-rs/lzma-linux-x64-gnu": ["@napi-rs/lzma-linux-x64-gnu@1.5.1", "", { "os": "linux", "cpu": "x64" }, "sha512-oTXEIha4SsuXdTA4Iyskj0kpdx2yVXdhd75c2v3xGrHFfVMsbhTPZU/nMPL4sWKo4pBHm3aucLaqGlF696dTyQ=="], "@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.2.2", "", { "dependencies": { "@tybys/wasm-util": "^0.10.3" }, "peerDependencies": { "@emnapi/core": "^1.7.1 || ^2.0.0-alpha.3", "@emnapi/runtime": "^1.7.1 || ^2.0.0-alpha.3" } }, "sha512-JfB4kuJQjaoHuCTseIINHtHWeJnvgEcxjwA5t/Y00ZgaOO1Crz3fjT/p8kT28zA/Caz7oiUMn3d6H2yOVCVwuw=="], @@ -2127,8 +2047,6 @@ "@opencode-ai/httpapi-codegen": ["@opencode-ai/httpapi-codegen@workspace:packages/httpapi-codegen"], - "@opencode-ai/lab-catalog": ["@opencode-ai/lab-catalog@workspace:packages/lab/catalog"], - "@opencode-ai/merman": ["@opencode-ai/merman@workspace:packages/merman"], "@opencode-ai/plugin": ["@opencode-ai/plugin@workspace:packages/plugin"], @@ -3261,46 +3179,6 @@ "@typescript/native-preview-win32-x64": ["@typescript/native-preview-win32-x64@7.0.0-dev.20251207.1", "", { "os": "win32", "cpu": "x64" }, "sha512-5l51HlXjX7lXwo65DEl1IaCFLjmkMtL6K3NrSEamPNeNTtTQwZRa3pQ9V65dCglnnCQ0M3+VF1RqzC7FU0iDKg=="], - "@typescript/typescript-aix-ppc64": ["@typescript/typescript-aix-ppc64@7.0.2", "", { "os": "aix", "cpu": "ppc64" }, "sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ=="], - - "@typescript/typescript-darwin-arm64": ["@typescript/typescript-darwin-arm64@7.0.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA=="], - - "@typescript/typescript-darwin-x64": ["@typescript/typescript-darwin-x64@7.0.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA=="], - - "@typescript/typescript-freebsd-arm64": ["@typescript/typescript-freebsd-arm64@7.0.2", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ=="], - - "@typescript/typescript-freebsd-x64": ["@typescript/typescript-freebsd-x64@7.0.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw=="], - - "@typescript/typescript-linux-arm": ["@typescript/typescript-linux-arm@7.0.2", "", { "os": "linux", "cpu": "arm" }, "sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ=="], - - "@typescript/typescript-linux-arm64": ["@typescript/typescript-linux-arm64@7.0.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ=="], - - "@typescript/typescript-linux-loong64": ["@typescript/typescript-linux-loong64@7.0.2", "", { "os": "linux", "cpu": "none" }, "sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ=="], - - "@typescript/typescript-linux-mips64el": ["@typescript/typescript-linux-mips64el@7.0.2", "", { "os": "linux", "cpu": "none" }, "sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA=="], - - "@typescript/typescript-linux-ppc64": ["@typescript/typescript-linux-ppc64@7.0.2", "", { "os": "linux", "cpu": "ppc64" }, "sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA=="], - - "@typescript/typescript-linux-riscv64": ["@typescript/typescript-linux-riscv64@7.0.2", "", { "os": "linux", "cpu": "none" }, "sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ=="], - - "@typescript/typescript-linux-s390x": ["@typescript/typescript-linux-s390x@7.0.2", "", { "os": "linux", "cpu": "s390x" }, "sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw=="], - - "@typescript/typescript-linux-x64": ["@typescript/typescript-linux-x64@7.0.2", "", { "os": "linux", "cpu": "x64" }, "sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A=="], - - "@typescript/typescript-netbsd-arm64": ["@typescript/typescript-netbsd-arm64@7.0.2", "", { "os": "none", "cpu": "arm64" }, "sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA=="], - - "@typescript/typescript-netbsd-x64": ["@typescript/typescript-netbsd-x64@7.0.2", "", { "os": "none", "cpu": "x64" }, "sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA=="], - - "@typescript/typescript-openbsd-arm64": ["@typescript/typescript-openbsd-arm64@7.0.2", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ=="], - - "@typescript/typescript-openbsd-x64": ["@typescript/typescript-openbsd-x64@7.0.2", "", { "os": "openbsd", "cpu": "x64" }, "sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg=="], - - "@typescript/typescript-sunos-x64": ["@typescript/typescript-sunos-x64@7.0.2", "", { "os": "sunos", "cpu": "x64" }, "sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g=="], - - "@typescript/typescript-win32-arm64": ["@typescript/typescript-win32-arm64@7.0.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ=="], - - "@typescript/typescript-win32-x64": ["@typescript/typescript-win32-x64@7.0.2", "", { "os": "win32", "cpu": "x64" }, "sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g=="], - "@typescript/vfs": ["@typescript/vfs@1.6.4", "", { "dependencies": { "debug": "^4.4.3" }, "peerDependencies": { "typescript": "*" } }, "sha512-PJFXFS4ZJKiJ9Qiuix6Dz/OwEIqHD7Dme1UwZhTK11vR+5dqW2ACbdndWQexBzCx+CPuMe5WBYQWCsFyGlQLlQ=="], "@typespec/ts-http-runtime": ["@typespec/ts-http-runtime@0.3.8", "", { "dependencies": { "http-proxy-agent": "^7.0.0", "https-proxy-agent": "^7.0.0", "tslib": "^2.6.2" } }, "sha512-bLMpVcWZNzq6lYOybwFwOAR1IXKcHnhUNqYeHjl1bET/qE3jFPFH+p8Wrh3rU4xwdnifPxmKNESBYnvnmc75aA=="], @@ -3363,10 +3241,6 @@ "@webgpu/types": ["@webgpu/types@0.1.54", "", {}, "sha512-81oaalC8LFrXjhsczomEQ0u3jG+TqE6V9QHLA8GNZq/Rnot0KDugu3LhSYSlie8tSdooAN1Hov05asrUUp9qgg=="], - "@wterm/core": ["@wterm/core@0.3.0", "", {}, "sha512-aQ73QBP+eyA3kcn31mA7DmAi7qmEsQijZdmvgwxtSjCi2248EAOZgtkGDpjlspfrxyVxQbUl/IF+gCVcXt4nZQ=="], - - "@wterm/ghostty": ["@wterm/ghostty@0.3.0", "", { "dependencies": { "@wterm/core": "0.3.0" } }, "sha512-TDjEmUSRD7IaFxq31P7+I3Inkp5mHCfBfO6LYj3/vbLbWOkOZOKPhjAcZ36AYFHe9Q0HLCFvLWmrxIO3aGCjDA=="], - "@xmldom/xmldom": ["@xmldom/xmldom@0.8.13", "", {}, "sha512-KRYzxepc14G/CEpEGc3Yn+JKaAeT63smlDr+vjB8jRfgTBBI9wRj/nkQEO+ucV8p8I9bfKLWp37uHgFrbntPvw=="], "@yuuang/ffi-rs-android-arm64": ["@yuuang/ffi-rs-android-arm64@1.3.7", "", { "os": "android", "cpu": "arm64" }, "sha512-t6Wx3Xll6c07Nuk0k3xnZsxKFxlshm92i0U/BiTHc6kQbvu+fMJF+gKsj4yEj886jH51CM3EqZT9Xdhq9CdUVw=="], @@ -5021,8 +4895,6 @@ "openapi-types": ["openapi-types@12.1.3", "", {}, "sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw=="], - "opencode-drive": ["opencode-drive@workspace:packages/drive"], - "openid-client": ["openid-client@5.6.4", "", { "dependencies": { "jose": "^4.15.4", "lru-cache": "^6.0.0", "object-hash": "^2.2.0", "oidc-token-hash": "^5.0.3" } }, "sha512-T1h3B10BRPKfcObdBklX639tVz+xh34O7GjofqrqiAQdm7eHsQ00ih18x6wuJ/E6FxdtS2u3FmUGPDeEcMwzNA=="], "opentui-spinner": ["opentui-spinner@0.0.7", "", { "dependencies": { "cli-spinners": "^3.3.0" }, "peerDependencies": { "@opentui/core": "^0.3.4", "@opentui/react": "^0.3.4", "@opentui/solid": "^0.3.4", "typescript": "^5" }, "optionalPeers": ["@opentui/react", "@opentui/solid"] }, "sha512-nPzwAvJG+y9rVEwwHLHqbsMzLnIk2zw+F9LqwA7aYJvpM5gsrKC2rrGi36A+tZpA+1RnWxXeWEgVZMchnaH18Q=="], @@ -5249,7 +5121,7 @@ "react": ["react@18.2.0", "", { "dependencies": { "loose-envify": "^1.1.0" } }, "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ=="], - "react-dom": ["react-dom@19.2.8", "", { "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { "react": "^19.2.8" } }, "sha512-rVprimfGBG3DR+Tq0IQG2DT5PxKth1WIGDmj5yPmlzr4YBe7uyE+Du4oVqTDXZSHGGGXRtTJEGSSePyQCMBglQ=="], + "react-dom": ["react-dom@18.2.0", "", { "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.0" }, "peerDependencies": { "react": "^18.2.0" } }, "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g=="], "react-is": ["react-is@17.0.2", "", {}, "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w=="], @@ -5417,7 +5289,7 @@ "sax": ["sax@1.6.1", "", {}, "sha512-42tBVwLWnaQvW5zc4HbZrTuWccECCZfBi92FDuwtqxasH+JbPB3/FOKb1m222K42R4WxuxzzMsTswfzgtSu64Q=="], - "scheduler": ["scheduler@0.27.0", "", {}, "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q=="], + "scheduler": ["scheduler@0.23.2", "", { "dependencies": { "loose-envify": "^1.1.0" } }, "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ=="], "section-matter": ["section-matter@1.0.0", "", { "dependencies": { "extend-shallow": "^2.0.1", "kind-of": "^6.0.0" } }, "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA=="], @@ -6349,16 +6221,12 @@ "@jsx-email/cli/esbuild": ["esbuild@0.19.12", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.19.12", "@esbuild/android-arm": "0.19.12", "@esbuild/android-arm64": "0.19.12", "@esbuild/android-x64": "0.19.12", "@esbuild/darwin-arm64": "0.19.12", "@esbuild/darwin-x64": "0.19.12", "@esbuild/freebsd-arm64": "0.19.12", "@esbuild/freebsd-x64": "0.19.12", "@esbuild/linux-arm": "0.19.12", "@esbuild/linux-arm64": "0.19.12", "@esbuild/linux-ia32": "0.19.12", "@esbuild/linux-loong64": "0.19.12", "@esbuild/linux-mips64el": "0.19.12", "@esbuild/linux-ppc64": "0.19.12", "@esbuild/linux-riscv64": "0.19.12", "@esbuild/linux-s390x": "0.19.12", "@esbuild/linux-x64": "0.19.12", "@esbuild/netbsd-x64": "0.19.12", "@esbuild/openbsd-x64": "0.19.12", "@esbuild/sunos-x64": "0.19.12", "@esbuild/win32-arm64": "0.19.12", "@esbuild/win32-ia32": "0.19.12", "@esbuild/win32-x64": "0.19.12" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg=="], - "@jsx-email/cli/react-dom": ["react-dom@18.2.0", "", { "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.0" }, "peerDependencies": { "react": "^18.2.0" } }, "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g=="], - "@jsx-email/cli/tailwindcss": ["tailwindcss@3.3.3", "", { "dependencies": { "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", "chokidar": "^3.5.3", "didyoumean": "^1.2.2", "dlv": "^1.1.3", "fast-glob": "^3.2.12", "glob-parent": "^6.0.2", "is-glob": "^4.0.3", "jiti": "^1.18.2", "lilconfig": "^2.1.0", "micromatch": "^4.0.5", "normalize-path": "^3.0.0", "object-hash": "^3.0.0", "picocolors": "^1.0.0", "postcss": "^8.4.23", "postcss-import": "^15.1.0", "postcss-js": "^4.0.1", "postcss-load-config": "^4.0.1", "postcss-nested": "^6.0.1", "postcss-selector-parser": "^6.0.11", "resolve": "^1.22.2", "sucrase": "^3.32.0" }, "bin": { "tailwind": "lib/cli.js", "tailwindcss": "lib/cli.js" } }, "sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w=="], "@jsx-email/cli/vite": ["vite@4.5.14", "", { "dependencies": { "esbuild": "^0.18.10", "postcss": "^8.4.27", "rollup": "^3.27.1" }, "optionalDependencies": { "fsevents": "~2.3.2" }, "peerDependencies": { "@types/node": ">= 14", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "stylus": "*", "sugarss": "*", "terser": "^5.4.0" }, "optionalPeers": ["@types/node", "less", "lightningcss", "sass", "stylus", "sugarss", "terser"], "bin": { "vite": "bin/vite.js" } }, "sha512-+v57oAaoYNnO3hIu5Z/tJRZjq5aHM2zDve9YZ8HngVHbhk66RStobhb1sqPMIPEleV6cNKYK4eGrAbE9Ulbl2g=="], "@jsx-email/doiuse-email/htmlparser2": ["htmlparser2@9.1.0", "", { "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", "domutils": "^3.1.0", "entities": "^4.5.0" } }, "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ=="], - "@jsx-email/tailwind/react-dom": ["react-dom@18.2.0", "", { "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.0" }, "peerDependencies": { "react": "^18.2.0" } }, "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g=="], - "@kobalte/core/solid-presence": ["solid-presence@0.1.8", "", { "dependencies": { "@corvu/utils": "~0.4.0" }, "peerDependencies": { "solid-js": "^1.8" } }, "sha512-pWGtXUFWYYUZNbg5YpG5vkQJyOtzn2KXhxYaMx/4I+lylTLYkITOLevaCwMRN+liCVk0pqB6EayLWojNqBFECA=="], "@malept/flatpak-bundler/fs-extra": ["fs-extra@9.1.0", "", { "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ=="], @@ -6447,20 +6315,12 @@ "@opencode-ai/desktop/typescript": ["typescript@5.6.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw=="], - "@opencode-ai/lab-catalog/react": ["react@19.2.8", "", {}, "sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw=="], - - "@opencode-ai/lab-catalog/typescript": ["typescript@7.0.2", "", { "optionalDependencies": { "@typescript/typescript-aix-ppc64": "7.0.2", "@typescript/typescript-darwin-arm64": "7.0.2", "@typescript/typescript-darwin-x64": "7.0.2", "@typescript/typescript-freebsd-arm64": "7.0.2", "@typescript/typescript-freebsd-x64": "7.0.2", "@typescript/typescript-linux-arm": "7.0.2", "@typescript/typescript-linux-arm64": "7.0.2", "@typescript/typescript-linux-loong64": "7.0.2", "@typescript/typescript-linux-mips64el": "7.0.2", "@typescript/typescript-linux-ppc64": "7.0.2", "@typescript/typescript-linux-riscv64": "7.0.2", "@typescript/typescript-linux-s390x": "7.0.2", "@typescript/typescript-linux-x64": "7.0.2", "@typescript/typescript-netbsd-arm64": "7.0.2", "@typescript/typescript-netbsd-x64": "7.0.2", "@typescript/typescript-openbsd-arm64": "7.0.2", "@typescript/typescript-openbsd-x64": "7.0.2", "@typescript/typescript-sunos-x64": "7.0.2", "@typescript/typescript-win32-arm64": "7.0.2", "@typescript/typescript-win32-x64": "7.0.2" }, "bin": { "tsc": "bin/tsc" } }, "sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA=="], - - "@opencode-ai/lab-catalog/wrangler": ["wrangler@4.110.0", "", { "dependencies": { "@cloudflare/kv-asset-handler": "0.5.0", "@cloudflare/unenv-preset": "2.16.1", "blake3-wasm": "2.1.5", "esbuild": "0.28.1", "miniflare": "4.20260708.1", "path-to-regexp": "6.3.0", "unenv": "2.0.0-rc.24", "workerd": "1.20260708.1" }, "optionalDependencies": { "fsevents": "2.3.3" }, "peerDependencies": { "@cloudflare/workers-types": "^5.20260708.1" }, "optionalPeers": ["@cloudflare/workers-types"], "bin": { "wrangler": "bin/wrangler.js", "wrangler2": "bin/wrangler.js", "cf-wrangler": "bin/cf-wrangler.js" } }, "sha512-xZeXKYi7hxQRF5anL+v77RkufJNpF9f3Eqeyqq2QBsETpLZgh0Agj0jJ6JPtkbgn6ukZdh8OK5egsGPWIditgg=="], - "@opencode-ai/session-ui/@opencode-ai/sdk": ["@opencode-ai/sdk@../app/vendor/opencode-ai-sdk-1.18.8-dev.tgz", { "dependencies": { "cross-spawn": "7.0.6" } }, "sha512-C2nfk4x0sPINwE5V6DPkFSuH3PkUmKPWHPzxpXC1j+3Ui5hslLCWJbkk8WcOG1Lyt3C0+yp4ea64v/kmtYCO4w=="], "@opencode-ai/session-ui/@solid-primitives/resize-observer": ["@solid-primitives/resize-observer@2.1.3", "", { "dependencies": { "@solid-primitives/event-listener": "^2.4.3", "@solid-primitives/rootless": "^1.5.2", "@solid-primitives/static-store": "^0.1.2", "@solid-primitives/utils": "^6.3.2" }, "peerDependencies": { "solid-js": "^1.6.12" } }, "sha512-zBLje5E06TgOg93S7rGPldmhDnouNGhvfZVKOp+oG2XU8snA+GoCSSCz1M+jpNAg5Ek2EakU5UVQqL152WmdXQ=="], "@opencode-ai/storybook/@types/react": ["@types/react@18.0.25", "", { "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", "csstype": "^3.0.2" } }, "sha512-xD6c0KDT4m7n9uD4ZHi02lzskaiqcBxf4zi+tXZY98a04wvc0hi/TcCPC2FOESZi51Nd7tlUeOJY8RofL799/g=="], - "@opencode-ai/storybook/react-dom": ["react-dom@18.2.0", "", { "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.0" }, "peerDependencies": { "react": "^18.2.0" } }, "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g=="], - "@opencode-ai/ui/@solid-primitives/resize-observer": ["@solid-primitives/resize-observer@2.1.3", "", { "dependencies": { "@solid-primitives/event-listener": "^2.4.3", "@solid-primitives/rootless": "^1.5.2", "@solid-primitives/static-store": "^0.1.2", "@solid-primitives/utils": "^6.3.2" }, "peerDependencies": { "solid-js": "^1.6.12" } }, "sha512-zBLje5E06TgOg93S7rGPldmhDnouNGhvfZVKOp+oG2XU8snA+GoCSSCz1M+jpNAg5Ek2EakU5UVQqL152WmdXQ=="], "@opencode-ai/updates/wrangler": ["wrangler@4.110.0", "", { "dependencies": { "@cloudflare/kv-asset-handler": "0.5.0", "@cloudflare/unenv-preset": "2.16.1", "blake3-wasm": "2.1.5", "esbuild": "0.28.1", "miniflare": "4.20260708.1", "path-to-regexp": "6.3.0", "unenv": "2.0.0-rc.24", "workerd": "1.20260708.1" }, "optionalDependencies": { "fsevents": "2.3.3" }, "peerDependencies": { "@cloudflare/workers-types": "^5.20260708.1" }, "optionalPeers": ["@cloudflare/workers-types"], "bin": { "wrangler": "bin/wrangler.js", "wrangler2": "bin/wrangler.js", "cf-wrangler": "bin/cf-wrangler.js" } }, "sha512-xZeXKYi7hxQRF5anL+v77RkufJNpF9f3Eqeyqq2QBsETpLZgh0Agj0jJ6JPtkbgn6ukZdh8OK5egsGPWIditgg=="], @@ -6493,44 +6353,20 @@ "@pierre/diffs/react": ["react@19.2.8", "", {}, "sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw=="], + "@pierre/diffs/react-dom": ["react-dom@19.2.8", "", { "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { "react": "^19.2.8" } }, "sha512-rVprimfGBG3DR+Tq0IQG2DT5PxKth1WIGDmj5yPmlzr4YBe7uyE+Du4oVqTDXZSHGGGXRtTJEGSSePyQCMBglQ=="], + + "@pierre/theming/react-dom": ["react-dom@19.2.8", "", { "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { "react": "^19.2.8" } }, "sha512-rVprimfGBG3DR+Tq0IQG2DT5PxKth1WIGDmj5yPmlzr4YBe7uyE+Du4oVqTDXZSHGGGXRtTJEGSSePyQCMBglQ=="], + "@pierre/trees/react": ["react@19.2.8", "", {}, "sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw=="], + "@pierre/trees/react-dom": ["react-dom@19.2.8", "", { "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { "react": "^19.2.8" } }, "sha512-rVprimfGBG3DR+Tq0IQG2DT5PxKth1WIGDmj5yPmlzr4YBe7uyE+Du4oVqTDXZSHGGGXRtTJEGSSePyQCMBglQ=="], + "@poppinss/dumper/@sindresorhus/is": ["@sindresorhus/is@7.2.0", "", {}, "sha512-P1Cz1dWaFfR4IR+U13mqqiGsLFf1KbayybWwdd2vfctdV6hDpUkgCY0nKOLLTMSoRd/jJNjtbqzf13K8DCCXQw=="], "@poppinss/dumper/supports-color": ["supports-color@10.2.2", "", {}, "sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g=="], "@protobuf-ts/plugin/typescript": ["typescript@3.9.10", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q=="], - "@radix-ui/react-arrow/react-dom": ["react-dom@18.2.0", "", { "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.0" }, "peerDependencies": { "react": "^18.2.0" } }, "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g=="], - - "@radix-ui/react-collapsible/react-dom": ["react-dom@18.2.0", "", { "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.0" }, "peerDependencies": { "react": "^18.2.0" } }, "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g=="], - - "@radix-ui/react-collection/react-dom": ["react-dom@18.2.0", "", { "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.0" }, "peerDependencies": { "react": "^18.2.0" } }, "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g=="], - - "@radix-ui/react-dismissable-layer/react-dom": ["react-dom@18.2.0", "", { "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.0" }, "peerDependencies": { "react": "^18.2.0" } }, "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g=="], - - "@radix-ui/react-focus-scope/react-dom": ["react-dom@18.2.0", "", { "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.0" }, "peerDependencies": { "react": "^18.2.0" } }, "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g=="], - - "@radix-ui/react-popover/react-dom": ["react-dom@18.2.0", "", { "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.0" }, "peerDependencies": { "react": "^18.2.0" } }, "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g=="], - - "@radix-ui/react-popper/react-dom": ["react-dom@18.2.0", "", { "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.0" }, "peerDependencies": { "react": "^18.2.0" } }, "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g=="], - - "@radix-ui/react-portal/react-dom": ["react-dom@18.2.0", "", { "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.0" }, "peerDependencies": { "react": "^18.2.0" } }, "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g=="], - - "@radix-ui/react-presence/react-dom": ["react-dom@18.2.0", "", { "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.0" }, "peerDependencies": { "react": "^18.2.0" } }, "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g=="], - - "@radix-ui/react-primitive/react-dom": ["react-dom@18.2.0", "", { "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.0" }, "peerDependencies": { "react": "^18.2.0" } }, "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g=="], - - "@radix-ui/react-roving-focus/react-dom": ["react-dom@18.2.0", "", { "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.0" }, "peerDependencies": { "react": "^18.2.0" } }, "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g=="], - - "@radix-ui/react-toggle/react-dom": ["react-dom@18.2.0", "", { "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.0" }, "peerDependencies": { "react": "^18.2.0" } }, "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g=="], - - "@radix-ui/react-toggle-group/react-dom": ["react-dom@18.2.0", "", { "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.0" }, "peerDependencies": { "react": "^18.2.0" } }, "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g=="], - - "@radix-ui/react-tooltip/react-dom": ["react-dom@18.2.0", "", { "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.0" }, "peerDependencies": { "react": "^18.2.0" } }, "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g=="], - - "@radix-ui/react-visually-hidden/react-dom": ["react-dom@18.2.0", "", { "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.0" }, "peerDependencies": { "react": "^18.2.0" } }, "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g=="], - "@rollup/pluginutils/estree-walker": ["estree-walker@2.0.2", "", {}, "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="], "@scalar/types/nanoid": ["nanoid@5.1.16", "", { "bin": { "nanoid": "bin/nanoid.js" } }, "sha512-kVrnsrJqMR8+oLJnGEmSWw9BivK5mt7H3FZatVRjrc5wGqFYuBxX1yG7+A7Gi5AefkX6t/oCkizcQgpu0cY1dQ=="], @@ -6589,6 +6425,8 @@ "@storybook/addon-docs/react": ["react@19.2.8", "", {}, "sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw=="], + "@storybook/addon-docs/react-dom": ["react-dom@19.2.8", "", { "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { "react": "^19.2.8" } }, "sha512-rVprimfGBG3DR+Tq0IQG2DT5PxKth1WIGDmj5yPmlzr4YBe7uyE+Du4oVqTDXZSHGGGXRtTJEGSSePyQCMBglQ=="], + "@storybook/csf-plugin/unplugin": ["unplugin@2.3.11", "", { "dependencies": { "@jridgewell/remapping": "^2.3.5", "acorn": "^8.15.0", "picomatch": "^4.0.3", "webpack-virtual-modules": "^0.6.2" } }, "sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww=="], "@tailwindcss/oxide-wasm32-wasi/@emnapi/core": ["@emnapi/core@1.11.3", "", { "dependencies": { "@emnapi/wasi-threads": "1.2.3", "tslib": "^2.4.0" }, "bundled": true }, "sha512-zLpS5asjEb7lq8jYLq37N6XKaE41DIexlY1rF/z4/tIl3wo13Sqm28fRyfIsKZD+NZ8mM5RoKkpW/rBcuoSZSg=="], @@ -6711,6 +6549,8 @@ "blume/react": ["react@19.2.8", "", {}, "sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw=="], + "blume/react-dom": ["react-dom@19.2.8", "", { "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { "react": "^19.2.8" } }, "sha512-rVprimfGBG3DR+Tq0IQG2DT5PxKth1WIGDmj5yPmlzr4YBe7uyE+Du4oVqTDXZSHGGGXRtTJEGSSePyQCMBglQ=="], + "blume/typescript": ["typescript@6.0.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw=="], "blume/zod": ["zod@3.25.76", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="], @@ -6827,8 +6667,6 @@ "form-data/mime-types": ["mime-types@2.1.35", "", { "dependencies": { "mime-db": "1.52.0" } }, "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="], - "framer-motion/react-dom": ["react-dom@18.2.0", "", { "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.0" }, "peerDependencies": { "react": "^18.2.0" } }, "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g=="], - "fs-extra/jsonfile": ["jsonfile@6.2.1", "", { "dependencies": { "universalify": "^2.0.0" }, "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q=="], "gaxios/node-fetch": ["node-fetch@3.3.2", "", { "dependencies": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", "formdata-polyfill": "^4.0.10" } }, "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA=="], @@ -6935,8 +6773,6 @@ "proper-lockfile/signal-exit": ["signal-exit@3.0.7", "", {}, "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="], - "react-dom/react": ["react@19.2.8", "", {}, "sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw=="], - "readdir-glob/minimatch": ["minimatch@5.1.9", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw=="], "rimraf/glob": ["glob@10.5.0", "", { "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", "minimatch": "^9.0.4", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" } }, "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg=="], @@ -7477,8 +7313,6 @@ "@jsx-email/cli/esbuild/@esbuild/win32-x64": ["@esbuild/win32-x64@0.19.12", "", { "os": "win32", "cpu": "x64" }, "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA=="], - "@jsx-email/cli/react-dom/scheduler": ["scheduler@0.23.2", "", { "dependencies": { "loose-envify": "^1.1.0" } }, "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ=="], - "@jsx-email/cli/tailwindcss/chokidar": ["chokidar@3.6.0", "", { "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.6.0" }, "optionalDependencies": { "fsevents": "~2.3.2" } }, "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw=="], "@jsx-email/cli/tailwindcss/glob-parent": ["glob-parent@6.0.2", "", { "dependencies": { "is-glob": "^4.0.3" } }, "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A=="], @@ -7493,8 +7327,6 @@ "@jsx-email/doiuse-email/htmlparser2/entities": ["entities@4.5.0", "", {}, "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="], - "@jsx-email/tailwind/react-dom/scheduler": ["scheduler@0.23.2", "", { "dependencies": { "loose-envify": "^1.1.0" } }, "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ=="], - "@malept/flatpak-bundler/fs-extra/jsonfile": ["jsonfile@6.2.1", "", { "dependencies": { "universalify": "^2.0.0" }, "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q=="], "@mapbox/node-pre-gyp/nopt/abbrev": ["abbrev@3.0.1", "", {}, "sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg=="], @@ -7593,18 +7425,6 @@ "@opencode-ai/desktop/@actions/artifact/@actions/http-client": ["@actions/http-client@2.2.3", "", { "dependencies": { "tunnel": "^0.0.6", "undici": "^5.25.4" } }, "sha512-mx8hyJi/hjFvbPokCg4uRd4ZX78t+YyRPtnKWwIl+RzNaVuFpQHfmlGVfsKEJN8LwTCvL+DfVgAM04XaHkm6bA=="], - "@opencode-ai/lab-catalog/wrangler/@cloudflare/kv-asset-handler": ["@cloudflare/kv-asset-handler@0.5.0", "", {}, "sha512-jxQYkj8dSIzc0cD6cMMNdOc1UVjqSqu8BZdor5s8cGjW2I8BjODt/kWPVdY+u9zj3ms75Q5qaZgnxUad83+eAg=="], - - "@opencode-ai/lab-catalog/wrangler/@cloudflare/unenv-preset": ["@cloudflare/unenv-preset@2.16.1", "", { "peerDependencies": { "unenv": "2.0.0-rc.24", "workerd": ">1.20260305.0 <2.0.0-0" }, "optionalPeers": ["workerd"] }, "sha512-ECxObrMfyTl5bhQf/lZCXwo5G6xX9IAUo+nDMKK4SZ8m4Jvvxp52vilxyySSWh2YTZz8+HQ07qGH/2rEom1vDw=="], - - "@opencode-ai/lab-catalog/wrangler/esbuild": ["esbuild@0.28.1", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.28.1", "@esbuild/android-arm": "0.28.1", "@esbuild/android-arm64": "0.28.1", "@esbuild/android-x64": "0.28.1", "@esbuild/darwin-arm64": "0.28.1", "@esbuild/darwin-x64": "0.28.1", "@esbuild/freebsd-arm64": "0.28.1", "@esbuild/freebsd-x64": "0.28.1", "@esbuild/linux-arm": "0.28.1", "@esbuild/linux-arm64": "0.28.1", "@esbuild/linux-ia32": "0.28.1", "@esbuild/linux-loong64": "0.28.1", "@esbuild/linux-mips64el": "0.28.1", "@esbuild/linux-ppc64": "0.28.1", "@esbuild/linux-riscv64": "0.28.1", "@esbuild/linux-s390x": "0.28.1", "@esbuild/linux-x64": "0.28.1", "@esbuild/netbsd-arm64": "0.28.1", "@esbuild/netbsd-x64": "0.28.1", "@esbuild/openbsd-arm64": "0.28.1", "@esbuild/openbsd-x64": "0.28.1", "@esbuild/openharmony-arm64": "0.28.1", "@esbuild/sunos-x64": "0.28.1", "@esbuild/win32-arm64": "0.28.1", "@esbuild/win32-ia32": "0.28.1", "@esbuild/win32-x64": "0.28.1" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw=="], - - "@opencode-ai/lab-catalog/wrangler/miniflare": ["miniflare@4.20260708.1", "", { "dependencies": { "@cspotcode/source-map-support": "0.8.1", "sharp": "0.34.5", "undici": "7.28.0", "workerd": "1.20260708.1", "ws": "8.21.0", "youch": "4.1.0-beta.10" }, "bin": { "miniflare": "bootstrap.js" } }, "sha512-c94O9zRDISdqO18EHt6l0iF/fWgWt8p18PJvRsA/L/NJZ9Cfke3s/F5Blg1XXF7WDutVRzWVWy8Vy4LaT5ifsA=="], - - "@opencode-ai/lab-catalog/wrangler/workerd": ["workerd@1.20260708.1", "", { "optionalDependencies": { "@cloudflare/workerd-darwin-64": "1.20260708.1", "@cloudflare/workerd-darwin-arm64": "1.20260708.1", "@cloudflare/workerd-linux-64": "1.20260708.1", "@cloudflare/workerd-linux-arm64": "1.20260708.1", "@cloudflare/workerd-windows-64": "1.20260708.1" }, "bin": { "workerd": "bin/workerd" } }, "sha512-WAK+Kt/VVCSldH2qSr8lx46XCJ4Q+bdlHNaFqUtOHthBEIB8C1N8HVW+VOLrxDoTCk0NGNv0zajnBeQK4JOB9w=="], - - "@opencode-ai/storybook/react-dom/scheduler": ["scheduler@0.23.2", "", { "dependencies": { "loose-envify": "^1.1.0" } }, "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ=="], - "@opencode-ai/updates/wrangler/@cloudflare/kv-asset-handler": ["@cloudflare/kv-asset-handler@0.5.0", "", {}, "sha512-jxQYkj8dSIzc0cD6cMMNdOc1UVjqSqu8BZdor5s8cGjW2I8BjODt/kWPVdY+u9zj3ms75Q5qaZgnxUad83+eAg=="], "@opencode-ai/updates/wrangler/@cloudflare/unenv-preset": ["@cloudflare/unenv-preset@2.16.1", "", { "peerDependencies": { "unenv": "2.0.0-rc.24", "workerd": ">1.20260305.0 <2.0.0-0" }, "optionalPeers": ["workerd"] }, "sha512-ECxObrMfyTl5bhQf/lZCXwo5G6xX9IAUo+nDMKK4SZ8m4Jvvxp52vilxyySSWh2YTZz8+HQ07qGH/2rEom1vDw=="], @@ -7693,35 +7513,13 @@ "@oxc-resolver/binding-wasm32-wasi/@emnapi/core/@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.2.2", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA=="], - "@radix-ui/react-arrow/react-dom/scheduler": ["scheduler@0.23.2", "", { "dependencies": { "loose-envify": "^1.1.0" } }, "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ=="], + "@pierre/diffs/react-dom/scheduler": ["scheduler@0.27.0", "", {}, "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q=="], - "@radix-ui/react-collapsible/react-dom/scheduler": ["scheduler@0.23.2", "", { "dependencies": { "loose-envify": "^1.1.0" } }, "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ=="], + "@pierre/theming/react-dom/react": ["react@19.2.8", "", {}, "sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw=="], - "@radix-ui/react-collection/react-dom/scheduler": ["scheduler@0.23.2", "", { "dependencies": { "loose-envify": "^1.1.0" } }, "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ=="], + "@pierre/theming/react-dom/scheduler": ["scheduler@0.27.0", "", {}, "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q=="], - "@radix-ui/react-dismissable-layer/react-dom/scheduler": ["scheduler@0.23.2", "", { "dependencies": { "loose-envify": "^1.1.0" } }, "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ=="], - - "@radix-ui/react-focus-scope/react-dom/scheduler": ["scheduler@0.23.2", "", { "dependencies": { "loose-envify": "^1.1.0" } }, "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ=="], - - "@radix-ui/react-popover/react-dom/scheduler": ["scheduler@0.23.2", "", { "dependencies": { "loose-envify": "^1.1.0" } }, "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ=="], - - "@radix-ui/react-popper/react-dom/scheduler": ["scheduler@0.23.2", "", { "dependencies": { "loose-envify": "^1.1.0" } }, "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ=="], - - "@radix-ui/react-portal/react-dom/scheduler": ["scheduler@0.23.2", "", { "dependencies": { "loose-envify": "^1.1.0" } }, "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ=="], - - "@radix-ui/react-presence/react-dom/scheduler": ["scheduler@0.23.2", "", { "dependencies": { "loose-envify": "^1.1.0" } }, "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ=="], - - "@radix-ui/react-primitive/react-dom/scheduler": ["scheduler@0.23.2", "", { "dependencies": { "loose-envify": "^1.1.0" } }, "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ=="], - - "@radix-ui/react-roving-focus/react-dom/scheduler": ["scheduler@0.23.2", "", { "dependencies": { "loose-envify": "^1.1.0" } }, "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ=="], - - "@radix-ui/react-toggle-group/react-dom/scheduler": ["scheduler@0.23.2", "", { "dependencies": { "loose-envify": "^1.1.0" } }, "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ=="], - - "@radix-ui/react-toggle/react-dom/scheduler": ["scheduler@0.23.2", "", { "dependencies": { "loose-envify": "^1.1.0" } }, "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ=="], - - "@radix-ui/react-tooltip/react-dom/scheduler": ["scheduler@0.23.2", "", { "dependencies": { "loose-envify": "^1.1.0" } }, "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ=="], - - "@radix-ui/react-visually-hidden/react-dom/scheduler": ["scheduler@0.23.2", "", { "dependencies": { "loose-envify": "^1.1.0" } }, "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ=="], + "@pierre/trees/react-dom/scheduler": ["scheduler@0.27.0", "", {}, "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q=="], "@sentry/bundler-plugin-core/glob/minimatch": ["minimatch@8.0.7", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-V+1uQNdzybxa14e/p00HZnQNNcTjnRJjDxg2V8wtkjFctq4M7hXFws4oekyTP0Jebeq7QYtpFyOeBAjc88zvYg=="], @@ -7783,6 +7581,8 @@ "@solidjs/start/shiki/@shikijs/types": ["@shikijs/types@1.29.2", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.1", "@types/hast": "^3.0.4" } }, "sha512-VJjK0eIijTZf0QSTODEXCqinjBn0joAHQ+aPSBzrv4O2d/QSbsMw+ZeSRx03kV34Hy7NzUvV/7NqfYGRLrASmw=="], + "@storybook/addon-docs/react-dom/scheduler": ["scheduler@0.27.0", "", {}, "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q=="], + "@storybook/csf-plugin/unplugin/acorn": ["acorn@8.18.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ=="], "@storybook/csf-plugin/unplugin/webpack-virtual-modules": ["webpack-virtual-modules@0.6.2", "", {}, "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ=="], @@ -7913,6 +7713,8 @@ "blume/node-html-parser/entities": ["entities@8.0.0", "", {}, "sha512-zwfzJecQ/Uej6tusMqwAqU/6KL2XaB2VZ2Jg54Je6ahNBGNH6Ek6g3jjNCF0fG9EWQKGZNddNjU5F1ZQn/sBnA=="], + "blume/react-dom/scheduler": ["scheduler@0.27.0", "", {}, "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q=="], + "builder-util/js-yaml/argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], "cliui/string-width/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], @@ -7959,8 +7761,6 @@ "form-data/mime-types/mime-db": ["mime-db@1.52.0", "", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="], - "framer-motion/react-dom/scheduler": ["scheduler@0.23.2", "", { "dependencies": { "loose-envify": "^1.1.0" } }, "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ=="], - "gcp-metadata/gaxios/node-fetch": ["node-fetch@3.3.2", "", { "dependencies": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", "formdata-polyfill": "^4.0.10" } }, "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA=="], "js-beautify/glob/jackspeak": ["jackspeak@3.4.3", "", { "dependencies": { "@isaacs/cliui": "^8.0.2" }, "optionalDependencies": { "@pkgjs/parseargs": "^0.11.0" } }, "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw=="], @@ -8627,72 +8427,6 @@ "@opencode-ai/desktop/@actions/artifact/@actions/http-client/undici": ["undici@5.29.0", "", { "dependencies": { "@fastify/busboy": "^2.0.0" } }, "sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg=="], - "@opencode-ai/lab-catalog/wrangler/esbuild/@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.28.1", "", { "os": "aix", "cpu": "ppc64" }, "sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ=="], - - "@opencode-ai/lab-catalog/wrangler/esbuild/@esbuild/android-arm": ["@esbuild/android-arm@0.28.1", "", { "os": "android", "cpu": "arm" }, "sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ=="], - - "@opencode-ai/lab-catalog/wrangler/esbuild/@esbuild/android-arm64": ["@esbuild/android-arm64@0.28.1", "", { "os": "android", "cpu": "arm64" }, "sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg=="], - - "@opencode-ai/lab-catalog/wrangler/esbuild/@esbuild/android-x64": ["@esbuild/android-x64@0.28.1", "", { "os": "android", "cpu": "x64" }, "sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng=="], - - "@opencode-ai/lab-catalog/wrangler/esbuild/@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.28.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q=="], - - "@opencode-ai/lab-catalog/wrangler/esbuild/@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.28.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ=="], - - "@opencode-ai/lab-catalog/wrangler/esbuild/@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.28.1", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw=="], - - "@opencode-ai/lab-catalog/wrangler/esbuild/@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.28.1", "", { "os": "freebsd", "cpu": "x64" }, "sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ=="], - - "@opencode-ai/lab-catalog/wrangler/esbuild/@esbuild/linux-arm": ["@esbuild/linux-arm@0.28.1", "", { "os": "linux", "cpu": "arm" }, "sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ=="], - - "@opencode-ai/lab-catalog/wrangler/esbuild/@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.28.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g=="], - - "@opencode-ai/lab-catalog/wrangler/esbuild/@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.28.1", "", { "os": "linux", "cpu": "ia32" }, "sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w=="], - - "@opencode-ai/lab-catalog/wrangler/esbuild/@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.28.1", "", { "os": "linux", "cpu": "none" }, "sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg=="], - - "@opencode-ai/lab-catalog/wrangler/esbuild/@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.28.1", "", { "os": "linux", "cpu": "none" }, "sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ=="], - - "@opencode-ai/lab-catalog/wrangler/esbuild/@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.28.1", "", { "os": "linux", "cpu": "ppc64" }, "sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ=="], - - "@opencode-ai/lab-catalog/wrangler/esbuild/@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.28.1", "", { "os": "linux", "cpu": "none" }, "sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ=="], - - "@opencode-ai/lab-catalog/wrangler/esbuild/@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.28.1", "", { "os": "linux", "cpu": "s390x" }, "sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag=="], - - "@opencode-ai/lab-catalog/wrangler/esbuild/@esbuild/linux-x64": ["@esbuild/linux-x64@0.28.1", "", { "os": "linux", "cpu": "x64" }, "sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA=="], - - "@opencode-ai/lab-catalog/wrangler/esbuild/@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.28.1", "", { "os": "none", "cpu": "arm64" }, "sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw=="], - - "@opencode-ai/lab-catalog/wrangler/esbuild/@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.28.1", "", { "os": "none", "cpu": "x64" }, "sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg=="], - - "@opencode-ai/lab-catalog/wrangler/esbuild/@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.28.1", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q=="], - - "@opencode-ai/lab-catalog/wrangler/esbuild/@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.28.1", "", { "os": "openbsd", "cpu": "x64" }, "sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw=="], - - "@opencode-ai/lab-catalog/wrangler/esbuild/@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.28.1", "", { "os": "none", "cpu": "arm64" }, "sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg=="], - - "@opencode-ai/lab-catalog/wrangler/esbuild/@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.28.1", "", { "os": "sunos", "cpu": "x64" }, "sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ=="], - - "@opencode-ai/lab-catalog/wrangler/esbuild/@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.28.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA=="], - - "@opencode-ai/lab-catalog/wrangler/esbuild/@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.28.1", "", { "os": "win32", "cpu": "ia32" }, "sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg=="], - - "@opencode-ai/lab-catalog/wrangler/esbuild/@esbuild/win32-x64": ["@esbuild/win32-x64@0.28.1", "", { "os": "win32", "cpu": "x64" }, "sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A=="], - - "@opencode-ai/lab-catalog/wrangler/miniflare/sharp": ["sharp@0.34.5", "", { "dependencies": { "@img/colour": "^1.0.0", "detect-libc": "^2.1.2", "semver": "^7.7.3" }, "optionalDependencies": { "@img/sharp-darwin-arm64": "0.34.5", "@img/sharp-darwin-x64": "0.34.5", "@img/sharp-libvips-darwin-arm64": "1.2.4", "@img/sharp-libvips-darwin-x64": "1.2.4", "@img/sharp-libvips-linux-arm": "1.2.4", "@img/sharp-libvips-linux-arm64": "1.2.4", "@img/sharp-libvips-linux-ppc64": "1.2.4", "@img/sharp-libvips-linux-riscv64": "1.2.4", "@img/sharp-libvips-linux-s390x": "1.2.4", "@img/sharp-libvips-linux-x64": "1.2.4", "@img/sharp-libvips-linuxmusl-arm64": "1.2.4", "@img/sharp-libvips-linuxmusl-x64": "1.2.4", "@img/sharp-linux-arm": "0.34.5", "@img/sharp-linux-arm64": "0.34.5", "@img/sharp-linux-ppc64": "0.34.5", "@img/sharp-linux-riscv64": "0.34.5", "@img/sharp-linux-s390x": "0.34.5", "@img/sharp-linux-x64": "0.34.5", "@img/sharp-linuxmusl-arm64": "0.34.5", "@img/sharp-linuxmusl-x64": "0.34.5", "@img/sharp-wasm32": "0.34.5", "@img/sharp-win32-arm64": "0.34.5", "@img/sharp-win32-ia32": "0.34.5", "@img/sharp-win32-x64": "0.34.5" } }, "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg=="], - - "@opencode-ai/lab-catalog/wrangler/miniflare/undici": ["undici@7.28.0", "", {}, "sha512-cRZYrTDwWznlnRiPjggAGxZXanty6M8RV1ff8Wm4LWXBp7/IG8v5DnOm74DtUBp9OONpK75YlPnIjQqX0dBDtA=="], - - "@opencode-ai/lab-catalog/wrangler/workerd/@cloudflare/workerd-darwin-64": ["@cloudflare/workerd-darwin-64@1.20260708.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-HXFCvhS1wpg3uXO0CLUwmwC41i2loM5FSK69EUchOBpmYBAXxT1oHLm6EOA5lqhTk5Mu9kjRiQYxa1GwKPwfJg=="], - - "@opencode-ai/lab-catalog/wrangler/workerd/@cloudflare/workerd-darwin-arm64": ["@cloudflare/workerd-darwin-arm64@1.20260708.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-JVlJaKDoRTVKSroHIlf8g3UCPjKj4iDbMZE2CNYht5qQ+2rL0FAUiVlV82G3BqKnnw9kHYnnsMzC08b9zVtdzA=="], - - "@opencode-ai/lab-catalog/wrangler/workerd/@cloudflare/workerd-linux-64": ["@cloudflare/workerd-linux-64@1.20260708.1", "", { "os": "linux", "cpu": "x64" }, "sha512-3daE60YdD7YX0Jtuzc9DE/r/qMkmx8ZvHTkF8Mzmp3F5tbzlV0DAzmu5PFUPF2WuvtKbAhZKbvC2cHmWpQYxnA=="], - - "@opencode-ai/lab-catalog/wrangler/workerd/@cloudflare/workerd-linux-arm64": ["@cloudflare/workerd-linux-arm64@1.20260708.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-VLdNYOx5Hj+9C6isy0ACWZsbMtSxex2DIJWEe7cZxUdlphZ58ZT8zxNXK8yunFiowd34hn3VwGMopdvdj8lvmA=="], - - "@opencode-ai/lab-catalog/wrangler/workerd/@cloudflare/workerd-windows-64": ["@cloudflare/workerd-windows-64@1.20260708.1", "", { "os": "win32", "cpu": "x64" }, "sha512-bC/aSAwLy16Vjo24i9XU3aWH+eRgz7NeR5xPKavGbembO18ZywYTQbXh14eXtY6fAqN3RzRG8psijTdhX4xydA=="], - "@opencode-ai/updates/wrangler/esbuild/@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.28.1", "", { "os": "aix", "cpu": "ppc64" }, "sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ=="], "@opencode-ai/updates/wrangler/esbuild/@esbuild/android-arm": ["@esbuild/android-arm@0.28.1", "", { "os": "android", "cpu": "arm" }, "sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ=="], @@ -9387,54 +9121,6 @@ "@opencode-ai/desktop/@actions/artifact/@actions/core/@actions/exec/@actions/io": ["@actions/io@1.1.3", "", {}, "sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q=="], - "@opencode-ai/lab-catalog/wrangler/miniflare/sharp/@img/sharp-darwin-arm64": ["@img/sharp-darwin-arm64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-darwin-arm64": "1.2.4" }, "os": "darwin", "cpu": "arm64" }, "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w=="], - - "@opencode-ai/lab-catalog/wrangler/miniflare/sharp/@img/sharp-darwin-x64": ["@img/sharp-darwin-x64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-darwin-x64": "1.2.4" }, "os": "darwin", "cpu": "x64" }, "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw=="], - - "@opencode-ai/lab-catalog/wrangler/miniflare/sharp/@img/sharp-libvips-darwin-arm64": ["@img/sharp-libvips-darwin-arm64@1.2.4", "", { "os": "darwin", "cpu": "arm64" }, "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g=="], - - "@opencode-ai/lab-catalog/wrangler/miniflare/sharp/@img/sharp-libvips-darwin-x64": ["@img/sharp-libvips-darwin-x64@1.2.4", "", { "os": "darwin", "cpu": "x64" }, "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg=="], - - "@opencode-ai/lab-catalog/wrangler/miniflare/sharp/@img/sharp-libvips-linux-arm": ["@img/sharp-libvips-linux-arm@1.2.4", "", { "os": "linux", "cpu": "arm" }, "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A=="], - - "@opencode-ai/lab-catalog/wrangler/miniflare/sharp/@img/sharp-libvips-linux-arm64": ["@img/sharp-libvips-linux-arm64@1.2.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw=="], - - "@opencode-ai/lab-catalog/wrangler/miniflare/sharp/@img/sharp-libvips-linux-ppc64": ["@img/sharp-libvips-linux-ppc64@1.2.4", "", { "os": "linux", "cpu": "ppc64" }, "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA=="], - - "@opencode-ai/lab-catalog/wrangler/miniflare/sharp/@img/sharp-libvips-linux-riscv64": ["@img/sharp-libvips-linux-riscv64@1.2.4", "", { "os": "linux", "cpu": "none" }, "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA=="], - - "@opencode-ai/lab-catalog/wrangler/miniflare/sharp/@img/sharp-libvips-linux-s390x": ["@img/sharp-libvips-linux-s390x@1.2.4", "", { "os": "linux", "cpu": "s390x" }, "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ=="], - - "@opencode-ai/lab-catalog/wrangler/miniflare/sharp/@img/sharp-libvips-linux-x64": ["@img/sharp-libvips-linux-x64@1.2.4", "", { "os": "linux", "cpu": "x64" }, "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw=="], - - "@opencode-ai/lab-catalog/wrangler/miniflare/sharp/@img/sharp-libvips-linuxmusl-arm64": ["@img/sharp-libvips-linuxmusl-arm64@1.2.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw=="], - - "@opencode-ai/lab-catalog/wrangler/miniflare/sharp/@img/sharp-libvips-linuxmusl-x64": ["@img/sharp-libvips-linuxmusl-x64@1.2.4", "", { "os": "linux", "cpu": "x64" }, "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg=="], - - "@opencode-ai/lab-catalog/wrangler/miniflare/sharp/@img/sharp-linux-arm": ["@img/sharp-linux-arm@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-arm": "1.2.4" }, "os": "linux", "cpu": "arm" }, "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw=="], - - "@opencode-ai/lab-catalog/wrangler/miniflare/sharp/@img/sharp-linux-arm64": ["@img/sharp-linux-arm64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-arm64": "1.2.4" }, "os": "linux", "cpu": "arm64" }, "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg=="], - - "@opencode-ai/lab-catalog/wrangler/miniflare/sharp/@img/sharp-linux-ppc64": ["@img/sharp-linux-ppc64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-ppc64": "1.2.4" }, "os": "linux", "cpu": "ppc64" }, "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA=="], - - "@opencode-ai/lab-catalog/wrangler/miniflare/sharp/@img/sharp-linux-riscv64": ["@img/sharp-linux-riscv64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-riscv64": "1.2.4" }, "os": "linux", "cpu": "none" }, "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw=="], - - "@opencode-ai/lab-catalog/wrangler/miniflare/sharp/@img/sharp-linux-s390x": ["@img/sharp-linux-s390x@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-s390x": "1.2.4" }, "os": "linux", "cpu": "s390x" }, "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg=="], - - "@opencode-ai/lab-catalog/wrangler/miniflare/sharp/@img/sharp-linux-x64": ["@img/sharp-linux-x64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-x64": "1.2.4" }, "os": "linux", "cpu": "x64" }, "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ=="], - - "@opencode-ai/lab-catalog/wrangler/miniflare/sharp/@img/sharp-linuxmusl-arm64": ["@img/sharp-linuxmusl-arm64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" }, "os": "linux", "cpu": "arm64" }, "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg=="], - - "@opencode-ai/lab-catalog/wrangler/miniflare/sharp/@img/sharp-linuxmusl-x64": ["@img/sharp-linuxmusl-x64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linuxmusl-x64": "1.2.4" }, "os": "linux", "cpu": "x64" }, "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q=="], - - "@opencode-ai/lab-catalog/wrangler/miniflare/sharp/@img/sharp-wasm32": ["@img/sharp-wasm32@0.34.5", "", { "dependencies": { "@emnapi/runtime": "^1.7.0" }, "cpu": "none" }, "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw=="], - - "@opencode-ai/lab-catalog/wrangler/miniflare/sharp/@img/sharp-win32-arm64": ["@img/sharp-win32-arm64@0.34.5", "", { "os": "win32", "cpu": "arm64" }, "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g=="], - - "@opencode-ai/lab-catalog/wrangler/miniflare/sharp/@img/sharp-win32-ia32": ["@img/sharp-win32-ia32@0.34.5", "", { "os": "win32", "cpu": "ia32" }, "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg=="], - - "@opencode-ai/lab-catalog/wrangler/miniflare/sharp/@img/sharp-win32-x64": ["@img/sharp-win32-x64@0.34.5", "", { "os": "win32", "cpu": "x64" }, "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw=="], - "@opencode-ai/updates/wrangler/miniflare/sharp/@img/sharp-darwin-arm64": ["@img/sharp-darwin-arm64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-darwin-arm64": "1.2.4" }, "os": "darwin", "cpu": "arm64" }, "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w=="], "@opencode-ai/updates/wrangler/miniflare/sharp/@img/sharp-darwin-x64": ["@img/sharp-darwin-x64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-darwin-x64": "1.2.4" }, "os": "darwin", "cpu": "x64" }, "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw=="], @@ -9715,8 +9401,6 @@ "@astrojs/cloudflare/wrangler/miniflare/sharp/@img/sharp-wasm32/@emnapi/runtime": ["@emnapi/runtime@1.11.3", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA=="], - "@opencode-ai/lab-catalog/wrangler/miniflare/sharp/@img/sharp-wasm32/@emnapi/runtime": ["@emnapi/runtime@1.11.3", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA=="], - "@opencode-ai/updates/wrangler/miniflare/sharp/@img/sharp-wasm32/@emnapi/runtime": ["@emnapi/runtime@1.11.3", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA=="], "@opencode-ai/www/@astrojs/cloudflare/@cloudflare/vite-plugin/miniflare/sharp/@img/sharp-darwin-arm64": ["@img/sharp-darwin-arm64@0.35.2", "", { "optionalDependencies": { "@img/sharp-libvips-darwin-arm64": "1.3.1" }, "os": "darwin", "cpu": "arm64" }, "sha512-eEieHsMksAW4IiO5NzauESRl2D2qz3J/kwUxUrSfV06A93eEaRfMpHXyUb1mAqrR7i8U9A0GRqE9pjn6u1Jjpg=="], diff --git a/package.json b/package.json index 9cf85b09f0a..430d5159ca6 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,6 @@ "packages": [ "packages/*", "packages/console/*", - "packages/lab/*", "packages/stats/*", "packages/slack" ], diff --git a/packages/cli/script/service-smoke.ts b/packages/cli/script/service-smoke.ts index 42b87eac435..d74a47fe803 100644 --- a/packages/cli/script/service-smoke.ts +++ b/packages/cli/script/service-smoke.ts @@ -88,7 +88,6 @@ try { if (!(await exitsWithin(winner, 10_000))) throw new Error("Compiled service did not stop") for (let attempt = 0; attempt < 200 && (await Bun.file(registration).exists()); attempt++) await Bun.sleep(25) if (await Bun.file(registration).exists()) throw new Error("Compiled service registration was not removed") - await driveSmoke() } catch (cause) { failure = cause } finally { @@ -112,50 +111,6 @@ function spawnService() { return process } -async function driveSmoke() { - const name = "compiled-artifact" - const drive = path.resolve(import.meta.dir, "../../drive/src/cli/index.ts") - const driveEnv = { - ...env, - DRIVE_REGISTRY_DIR: path.join(root, "drive-registry"), - OPENCODE_DRIVE_KEEP_ARTIFACTS: "1", - OPENCODE_DRIVE_MEDIA_DIR: path.join(root, "drive-media"), - } - let started = false - try { - await runDrive(["start", "--name", name, "--", binary], drive, driveEnv) - started = true - const screenshot = ( - await runDrive( - ["send", "--name", name, "--command.ui.screenshot", '{"name":"compiled-capture"}'], - drive, - driveEnv, - ) - ).trim() - const bytes = Buffer.from(await Bun.file(screenshot).arrayBuffer()) - if (!bytes.subarray(0, 8).equals(Buffer.from([137, 80, 78, 71, 13, 10, 26, 10]))) - throw new Error("Compiled Drive bridge did not produce a PNG capture") - } finally { - if (started) await runDrive(["stop", "--name", name], drive, driveEnv) - } -} - -async function runDrive(args: ReadonlyArray, drive: string, driveEnv: Record) { - const child = Bun.spawn([process.execPath, drive, ...args], { - cwd: root, - env: driveEnv, - stdout: "pipe", - stderr: "pipe", - }) - const [status, stdout, stderr] = await Promise.all([ - child.exited, - new Response(child.stdout).text(), - new Response(child.stderr).text(), - ]) - if (status !== 0) throw new Error(`opencode-drive ${args[0]} failed:\n${stderr}`) - return stdout -} - async function waitForRegistration() { const directory = path.join(root, "state", "opencode") for (let attempt = 0; attempt < 400; attempt++) { diff --git a/packages/cli/script/verify-artifact.ts b/packages/cli/script/verify-artifact.ts index a17426920bd..68b8e9c2770 100644 --- a/packages/cli/script/verify-artifact.ts +++ b/packages/cli/script/verify-artifact.ts @@ -14,7 +14,6 @@ const forbidden = [ "noto-sans-math-math-400-normal", "CommitMono-400-Regular.otf", "NotoSansSymbols.ttf", - "packages/drive/src/recording/render", "src/frontend/png.ts", "skia.darwin-", "skia.linux-", @@ -37,10 +36,7 @@ export function verifySimulationGraph(inputs: Iterable) { ] const missing = required.filter((input) => !modules.some((module) => module.endsWith(input))) if (missing.length > 0) throw new Error(`Build graph is missing simulation bridge inputs: ${missing.join(", ")}`) - const leaked = modules.find( - (module) => - module.includes("/packages/simulation/src/frontend/png.") || module.includes("/packages/drive/src/recording/"), - ) + const leaked = modules.find((module) => module.includes("/packages/simulation/src/frontend/png.")) if (leaked) throw new Error(`Build graph contains Drive-only rendering input: ${leaked}`) } diff --git a/packages/cli/test/drive/mini-interactive.drive.mjs b/packages/cli/test/drive/mini-interactive.drive.mjs deleted file mode 100644 index 5323380d50b..00000000000 --- a/packages/cli/test/drive/mini-interactive.drive.mjs +++ /dev/null @@ -1,371 +0,0 @@ -import { Effect } from "effect" -import { defineScript, Llm } from "opencode-drive" -import { mkdir } from "node:fs/promises" -import path from "node:path" - -export default defineScript({ - launch: "manual", - config: { autoupdate: false }, - run: ({ artifacts, llm, server }) => - Effect.gen(function* () { - yield* Effect.promise(() => configureServicePort(artifacts)) - yield* server.launch() - - const registration = yield* Effect.promise(() => serviceRegistration(artifacts)) - const root = path.resolve(import.meta.dir, "../../../..") - const preload = Bun.resolveSync("@opentui/solid/preload", path.join(root, "packages/cli")) - const session = `mini-stage2-${process.pid}` - const snapshots = path.join(artifacts, "mini-stage2") - const explicitDirectory = path.join(artifacts, "explicit-model") - yield* Effect.promise(() => - Promise.all([snapshots, explicitDirectory].map((dir) => mkdir(dir, { recursive: true }))), - ) - /** @param {string} directory @param {string | undefined} model */ - const mini = (directory, model) => [ - "env", - `PWD=${directory}`, - `OPENCODE_PASSWORD=${registration.password}`, - `OPENCODE_CONFIG_DIR=${path.join(artifacts, "files/.opencode")}`, - `OPENCODE_TEST_HOME=${artifacts}`, - `XDG_CACHE_HOME=${path.join(artifacts, "home/.cache")}`, - `XDG_CONFIG_HOME=${path.join(artifacts, "home/.config")}`, - `XDG_DATA_HOME=${path.join(artifacts, "logs")}`, - `XDG_STATE_HOME=${path.join(artifacts, "home/.local/state")}`, - "OPENCODE_DISABLE_AUTOUPDATE=1", - "OPENCODE_DIRECT_TRACE=1", - process.execPath, - "--conditions=browser", - `--preload=${preload}`, - path.join(root, "packages/cli/src/index.ts"), - "mini", - "--server", - registration.url, - ...(model ? ["--model", model] : []), - ] - - yield* llm.queue( - Llm.toolCall({ - index: 0, - id: "mini-shell", - name: "shell", - input: { command: "printf 'drive-mini-tool-output\\n'" }, - }), - Llm.finish("tool-calls"), - ) - yield* llm.queue(Llm.text("drive mini response complete", { delay: 5, chunkSize: 4 })) - - const journey = Effect.gen(function* () { - yield* Effect.uninterruptible( - Effect.promise(() => - tmux([ - "new-session", - "-d", - "-s", - session, - "-x", - "140", - "-y", - "30", - "--", - ...mini(path.join(artifacts, "files"), undefined), - ]), - ), - ) - yield* Effect.promise(() => tmux(["set-option", "-t", session, "remain-on-exit", "on"])) - - const first = yield* Effect.promise(() => waitForPane(session, "OpenCode")) - yield* Effect.promise(() => Bun.write(path.join(snapshots, "01-first-paint.txt"), first)) - if (first.includes("drive mini response complete")) - throw new Error("response rendered before prompt submission") - - yield* Effect.promise(() => waitForPane(session, "Default model", 15_000)) - yield* Effect.promise(() => tmux(["send-keys", "-t", session, "C-p"])) - yield* Effect.promise(() => waitForVisiblePane(session, "Commands")) - yield* Effect.promise(() => tmux(["send-keys", "-t", session, "-l", "model"])) - yield* Effect.promise(() => waitForVisiblePane(session, "Switch model")) - yield* Effect.promise(() => tmux(["send-keys", "-H", "-t", session, "0d"])) - yield* Effect.promise(() => waitForVisiblePane(session, "Select model")) - yield* Effect.promise(() => waitForVisiblePane(session, "Simulated Model", 15_000)) - yield* Effect.promise(() => tmux(["send-keys", "-t", session, "Escape"])) - yield* Effect.promise(() => waitForVisiblePane(session, "Ask anything...")) - yield* Effect.promise(() => tmux(["send-keys", "-t", session, "-l", "exercise the mini frontend"])) - yield* Effect.sleep(100) - yield* Effect.promise(() => tmux(["send-keys", "-H", "-t", session, "0d"])) - const completed = yield* Effect.promise(() => waitForPane(session, "drive mini response complete", 20_000)) - if (!completed.includes("drive-mini-tool-output")) throw new Error("shell tool output was not rendered") - yield* Effect.promise(() => Bun.write(path.join(snapshots, "02-tool-and-response.txt"), completed)) - - yield* Effect.sleep(500) - const resizeOutput = path.join(snapshots, "03-resize-output.ansi") - yield* Effect.promise(() => tmux(["pipe-pane", "-t", session, `cat > ${JSON.stringify(resizeOutput)}`])) - yield* Effect.promise(() => tmux(["resize-window", "-t", session, "-x", "72", "-y", "22"])) - yield* Effect.promise(() => - waitForFile( - resizeOutput, - (value) => value.includes("drive mini response complete") && value.includes("drive-mini-tool-output"), - ), - ) - yield* Effect.promise(() => tmux(["pipe-pane", "-t", session])) - const resized = yield* Effect.promise(() => captureVisiblePane(session)) - if (!resized.includes("drive-mini-tool-output")) throw new Error("resize replay lost shell tool output") - yield* Effect.promise(() => Bun.write(path.join(snapshots, "03-resize-replay.txt"), resized)) - - yield* llm.queue( - Llm.toolCall({ - index: 0, - id: "mini-question", - name: "question", - input: { - questions: [ - { - header: "Drive form", - question: "Choose the Mini Form answer", - options: [{ label: "Accepted", description: "Continue the run" }], - multiple: false, - }, - ], - }, - }), - Llm.finish("tool-calls"), - ) - yield* llm.queue(Llm.text("drive mini form complete")) - yield* Effect.promise(() => tmux(["send-keys", "-t", session, "-l", "exercise the form"])) - yield* Effect.promise(() => tmux(["send-keys", "-H", "-t", session, "0d"])) - yield* Effect.promise(() => waitForPane(session, "Choose the Mini Form answer", 20_000)) - yield* Effect.promise(() => tmux(["send-keys", "-H", "-t", session, "0d"])) - yield* Effect.promise(() => waitForPane(session, "drive mini form complete", 20_000)) - - yield* llm.queue( - Llm.toolCall({ - index: 0, - id: "mini-slow-shell", - name: "shell", - input: { command: "sleep 10" }, - }), - Llm.finish("tool-calls"), - ) - yield* Effect.promise(() => tmux(["send-keys", "-t", session, "-l", "interrupt this turn"])) - yield* Effect.sleep(100) - yield* Effect.promise(() => tmux(["send-keys", "-H", "-t", session, "0d"])) - yield* Effect.promise(() => waitForPane(session, "$ sleep 10")) - yield* Effect.promise(() => tmux(["send-keys", "-t", session, "Escape"])) - const armed = yield* Effect.promise(() => waitForPane(session, "esc again")) - yield* Effect.promise(() => Bun.write(path.join(snapshots, "04-interrupt-armed.txt"), armed)) - yield* Effect.promise(() => tmux(["send-keys", "-t", session, "Escape"])) - const interrupted = yield* Effect.promise(() => waitForPane(session, "Step interrupted", 10_000)) - yield* Effect.promise(() => Bun.write(path.join(snapshots, "05-interrupted.txt"), interrupted)) - - yield* Effect.promise(async () => { - if (!(await paneAlive(session))) throw new Error("Mini exited while interrupting an active turn") - }) - yield* Effect.promise(() => tmux(["send-keys", "-t", session, "C-c"])) - yield* Effect.promise(() => waitForPane(session, "EXIT Press ctrl+")) - yield* Effect.promise(() => tmux(["send-keys", "-t", session, "C-c"])) - yield* Effect.promise(() => waitForDeadPane(session)) - const status = yield* Effect.promise(() => paneDeadStatus(session)) - if (status !== 0) throw new Error(`Mini exited with status ${status}`) - const exited = yield* Effect.promise(() => capturePane(session)) - if (!exited.includes("Continue") || !exited.includes("opencode mini -s")) - throw new Error("Mini exit splash was not rendered before teardown") - yield* Effect.promise(() => Bun.write(path.join(snapshots, "06-exit-teardown.txt"), exited)) - - yield* Effect.promise(() => tmux(["clear-history", "-t", session])) - yield* Effect.promise(() => - tmux(["respawn-pane", "-k", "-t", session, "--", ...mini(explicitDirectory, "simulation/gpt-sim-model")]), - ) - const explicitModel = yield* Effect.promise(() => waitForPane(session, "Simulated Model", 15_000)) - yield* Effect.promise(() => Bun.write(path.join(snapshots, "07-explicit-model.txt"), explicitModel)) - yield* Effect.promise(() => tmux(["send-keys", "-t", session, "C-c"])) - yield* Effect.promise(() => waitForPane(session, "EXIT Press ctrl+")) - yield* Effect.promise(() => tmux(["send-keys", "-t", session, "C-c"])) - yield* Effect.promise(() => waitForDeadPane(session)) - if ((yield* Effect.promise(() => paneDeadStatus(session))) !== 0) - throw new Error("Explicit-model Mini did not exit cleanly") - - yield* Effect.promise(async () => { - for (const failure of [ - { - args: ["--model", "simulation/definitely-missing"], - capture: "08-unavailable-model.txt", - expected: "Model unavailable: simulation/definitely-missing", - }, - { - args: ["--agent", "definitely-missing"], - capture: "09-unavailable-agent.txt", - expected: 'Agent not found: "definitely-missing"', - }, - ]) { - const child = Bun.spawn( - [ - process.execPath, - path.join(root, "packages/cli/src/index.ts"), - "run", - "--server", - registration.url, - ...failure.args, - "optimistic selection check", - ], - { - cwd: path.join(root, "packages/cli"), - env: { - ...process.env, - PWD: path.join(artifacts, "files"), - OPENCODE_PASSWORD: registration.password, - OPENCODE_CONFIG_DIR: path.join(artifacts, "files/.opencode"), - OPENCODE_DISABLE_AUTOUPDATE: "1", - }, - stdin: "ignore", - stdout: "pipe", - stderr: "pipe", - }, - ) - const [exitCode, stdout, stderr] = await Promise.all([ - child.exited, - new Response(child.stdout).text(), - new Response(child.stderr).text(), - ]) - await Bun.write(path.join(snapshots, failure.capture), stdout + stderr) - if (exitCode !== 1) throw new Error(`${failure.expected} run exited with status ${exitCode}`) - if (!stderr.includes(failure.expected)) - throw new Error(`Selection failure was not diagnosed by execution: ${stderr}`) - } - }) - }) - - yield* journey.pipe(Effect.ensuring(Effect.promise(() => tmux(["kill-session", "-t", session], true)))) - }), -}) - -/** @param {string[]} args */ -async function tmux(args, allowFailure = false) { - const child = Bun.spawn(["tmux", ...args], { stdout: "pipe", stderr: "pipe" }) - let timedOut = false - const timeout = setTimeout(() => { - timedOut = true - child.kill("SIGKILL") - }, 5_000) - const [status, stdout, stderr] = await Promise.all([ - child.exited, - new Response(child.stdout).text(), - new Response(child.stderr).text(), - ]) - clearTimeout(timeout) - if (timedOut) throw new Error(`tmux ${args[0]} timed out`) - if (status !== 0 && !allowFailure) throw new Error(`tmux ${args[0]} failed: ${stderr || stdout}`) - return stdout -} - -/** @param {string} session */ -function capturePane(session) { - return tmux(["capture-pane", "-p", "-t", session, "-S", "-"]) -} - -/** @param {string} session */ -function captureVisiblePane(session) { - return tmux(["capture-pane", "-p", "-t", session]) -} - -/** @param {string} session @param {string} text @param {number} [timeout] */ -async function waitForVisiblePane(session, text, timeout = 5_000) { - const deadline = Date.now() + timeout - let last = "" - while (Date.now() < deadline) { - last = await captureVisiblePane(session) - if (last.includes(text)) return last - if (!(await paneAlive(session))) throw new Error(`Mini exited before rendering ${JSON.stringify(text)}:\n${last}`) - await Bun.sleep(50) - } - throw new Error(`Timed out waiting for visible ${JSON.stringify(text)}:\n${last}`) -} - -/** @param {string} session */ -async function paneAlive(session) { - return (await tmux(["display-message", "-p", "-t", session, "#{pane_dead}"], true)).trim() === "0" -} - -/** @param {string} session */ -async function paneDeadStatus(session) { - return Number((await tmux(["display-message", "-p", "-t", session, "#{pane_dead_status}"])).trim()) -} - -/** - * @param {string} session - * @param {string} text - * @param {number} [timeout] - * @param {(() => Promise) | undefined} [trigger] - */ -async function waitForPane(session, text, timeout = 5_000, trigger) { - const deadline = Date.now() + timeout - let last = "" - while (Date.now() < deadline) { - await trigger?.() - last = await capturePane(session) - if (last.includes(text)) return last - if (!(await paneAlive(session))) throw new Error(`Mini exited before rendering ${JSON.stringify(text)}:\n${last}`) - await Bun.sleep(50) - } - throw new Error(`Timed out waiting for ${JSON.stringify(text)}:\n${last}`) -} - -/** @param {string} session */ -async function waitForDeadPane(session) { - for (let attempt = 0; attempt < 100; attempt++) { - if (!(await paneAlive(session))) return - await Bun.sleep(50) - } - throw new Error("Mini did not tear down after the exit sequence") -} - -/** - * @param {string} file - * @param {(value: string) => boolean} accept - */ -async function waitForFile(file, accept) { - let value = "" - for (let attempt = 0; attempt < 100; attempt++) { - value = await Bun.file(file) - .text() - .catch(() => "") - if (accept(value)) return value - await Bun.sleep(50) - } - throw new Error("resize did not replay committed transcript output") -} - -/** @param {string} artifacts */ -async function configureServicePort(artifacts) { - const probe = Bun.serve({ hostname: "127.0.0.1", port: 0, fetch: () => new Response() }) - const port = probe.port - await probe.stop(true) - if (!port) throw new Error("Failed to allocate a Drive service port") - const file = path.join(artifacts, "files/.opencode/service-local.json") - await mkdir(path.dirname(file), { recursive: true }) - await Bun.write(file, JSON.stringify({ port })) -} - -/** @param {string} artifacts */ -async function serviceRegistration(artifacts) { - const directory = path.join(artifacts, "home/.local/state/opencode") - for (let attempt = 0; attempt < 200; attempt++) { - for (const name of ["service-local.json", "service.json"]) { - const value = await Bun.file(path.join(directory, name)) - .json() - .catch(() => undefined) - if (isRegistration(value)) return value - } - await Bun.sleep(50) - } - throw new Error("Drive service registration was not written") -} - -/** @param {unknown} value */ -function isRegistration(value) { - return ( - typeof value === "object" && - value !== null && - "url" in value && - typeof value.url === "string" && - "password" in value && - typeof value.password === "string" - ) -} diff --git a/packages/cli/test/drive/run-smoke.drive.mjs b/packages/cli/test/drive/run-smoke.drive.mjs deleted file mode 100644 index d462a2feb3a..00000000000 --- a/packages/cli/test/drive/run-smoke.drive.mjs +++ /dev/null @@ -1,87 +0,0 @@ -import { defineScript } from "opencode-drive" -import { mkdir } from "node:fs/promises" -import path from "node:path" - -export default defineScript({ - launch: "manual", - setup({ config }) { - config.autoupdate = false - }, - async run({ artifacts, llm, server }) { - await configureServicePort(artifacts) - llm.queue(llm.text("drive noninteractive smoke ok")) - await server.launch() - - const registration = await serviceRegistration(artifacts) - const root = path.resolve(import.meta.dir, "../../../..") - const directory = path.join(artifacts, "files") - const child = Bun.spawn( - [ - process.execPath, - path.join(root, "packages/cli/src/index.ts"), - "run", - "--server", - registration.url, - "drive smoke", - ], - { - cwd: path.join(root, "packages/cli"), - env: { - ...process.env, - PWD: directory, - OPENCODE_PASSWORD: registration.password, - OPENCODE_CONFIG_DIR: path.join(directory, ".opencode"), - OPENCODE_DISABLE_AUTOUPDATE: "1", - }, - stdin: "ignore", - stdout: "pipe", - stderr: "pipe", - }, - ) - const [exitCode, stdout, stderr] = await Promise.all([ - child.exited, - new Response(child.stdout).text(), - new Response(child.stderr).text(), - ]) - if (exitCode !== 0) throw new Error(`run exited ${exitCode}: ${stderr}`) - if (stdout !== "drive noninteractive smoke ok\n") throw new Error(`unexpected run output: ${stdout}`) - }, -}) - -/** @param {string} artifacts */ -async function configureServicePort(artifacts) { - const probe = Bun.serve({ hostname: "127.0.0.1", port: 0, fetch: () => new Response() }) - const port = probe.port - await probe.stop(true) - if (!port) throw new Error("Failed to allocate a Drive service port") - const file = path.join(artifacts, "files/.opencode/service-local.json") - await mkdir(path.dirname(file), { recursive: true }) - await Bun.write(file, JSON.stringify({ port })) -} - -/** @param {string} artifacts */ -async function serviceRegistration(artifacts) { - const directory = path.join(artifacts, "home/.local/state/opencode") - for (let attempt = 0; attempt < 200; attempt++) { - for (const name of ["service-local.json", "service.json"]) { - const value = await Bun.file(path.join(directory, name)) - .json() - .catch(() => undefined) - if (isRegistration(value)) return value - } - await Bun.sleep(50) - } - throw new Error("Drive service registration was not written") -} - -/** @param {unknown} value */ -function isRegistration(value) { - return ( - typeof value === "object" && - value !== null && - "url" in value && - typeof value.url === "string" && - "password" in value && - typeof value.password === "string" - ) -} diff --git a/packages/drive/CHANGELOG.md b/packages/drive/CHANGELOG.md deleted file mode 100644 index 11df70f97b1..00000000000 --- a/packages/drive/CHANGELOG.md +++ /dev/null @@ -1,89 +0,0 @@ -# opencode-drive - -## 1.4.3 - -### Patch Changes - -- 99561ad: Restore controlled tools against the current V2 plugin API and add typed runtime control for write calls. - -## 1.4.2 - -### Patch Changes - -- b524213: Render light box-drawing borders as continuous geometric primitives. -- a24a09d: Defer recording font initialization so source-checkout scripts can start without loading a duplicate renderer. - -## 1.4.1 - -### Patch Changes - -- 6a8d52b: Prevent concurrent detached launchers from stealing prepared instance ownership and spawning competing daemon processes. -- d71356f: Restore compatibility with current OpenCode V2 checkouts and packed Drive installations. Drive now uses V2's built-in simulation transport and provider shape, isolates scripted service ports and command forms, and compiles standalone scripts against the launching Drive toolchain without package installation or source-directory links. - -## 1.4.0 - -### Minor Changes - -- c20d147: Control arbitrary provider-backed tool lifecycles with dynamic registration, structured progress, success, failure, cancellation, and reconnect-safe replay. - -## 1.3.0 - -### Minor Changes - -- 7caebeb: Expose semantic UI snapshots, exact semantic node polling, and safe semantic-node clicks for compatible OpenCode endpoints. - -## 1.2.0 - -### Minor Changes - -- 4e0c002: Write screenshots and recordings beneath run- and restart-scoped media directories so named outputs cannot overwrite earlier runs. - -## 1.1.0 - -### Minor Changes - -- fad9f96: Allow scripts and library drivers to intercept declared tools and control concurrent invocations by call ID at runtime. - -### Patch Changes - -- 63d3464: Keep service and progress output out of visible TUI sessions and avoid reinstalling the OpenTUI preload package for development checkouts. -- fd45cfe: Allow Drive runs to select a durable OpenCode database with the Effect-configured `OPENCODE_DRIVE_DB` setting while retaining `:memory:` as the default. -- e66adc1: Preserve recorded frame timing during MP4 encoding and reduce work for dense or unchanged terminal output. -- e7dff5f: Render diagonal quadrant block glyphs as exact terminal cell geometry in screenshots, recordings, and catalog frames. -- 63d3464: Export recordings at 60 FPS by default and preserve the requested frame rate in generated MP4 files. - -## 1.0.0 - -### Major Changes - -- 1009394: Remove the Promise-based simulation clients. `SimulationClient`, `BackendSimulationClient`, `connectSimulation`, and `connectBackendSimulation` are gone, along with the `opencode-drive/experimental` entry point. The `opencode-drive/client` entry now exports only the canonical protocol schemas and default ports; the public API is Effect-only, as documented. The CLI drives instances through the Effect `SimulationConnector` directly. - -### Minor Changes - -- 9deab8d: Add the browser-safe `opencode-drive/frame` entry point: canonical cell geometry, OpenTUI text-attribute bits, the geometric block/bar glyph table, and baseline placement shared by the Drive PNG renderer and downstream canvas renderers. The PNG renderer now also draws the `┃` and `╹` structural bars geometrically instead of with fonts. - -### Patch Changes - -- 8481090: Settle simulated LLM responses cleanly when OpenCode terminates an invocation during interruption. Drive now uses the negotiated `llm.pending` capability to distinguish external termination from genuine response write failures. - -## 0.6.0 - -### Minor Changes - -- 58c4801: Return simulated background shells immediately, continue their handlers asynchronously, notify the session when they finish, and cancel them when Drive shuts down. -- b5e8dfe: Make the script API Effect-only. Script setup and run callbacks, UI, LLM, filesystem, server, and TUI operations now return Effects; LLM serve handlers return Streams; and script cancellation uses Effect interruption without a Promise compatibility shim. -- 775f799: Remove the tool handler `AbortSignal`. Foreground session interruption, transport disconnects, and Drive shutdown now surface uniformly as Effect interruption, and controller shutdown awaits handler finalizers. Detached background shell handlers remain active after launch and are interrupted during Drive shutdown. -- 8e51796: Add deterministic shell, web fetch, and web search handlers with progress, success, failure, and interruption simulation. -- 905f846: Add `opencode-drive script init` for generating an Effect-native starter script and show focused migration guidance when `check` finds Promise-style script callbacks. -- d1bba54: Add first-class tool call input streaming through `Llm.toolCall` stream options. -- 72f7aff: Expose the authenticated generated OpenCode SDK as `opencode` to drivers and scripts. -- 37b4cd1: Give capabilities precise typed errors, validate UI predicates in canonical `ui.waitFor`, expose concrete failures through `Errors`, and keep pure response constructors exclusively under `Llm`. -- 13ec474: Unify the Effect driver and `defineScript` around one canonical programmatic model. Both expose the generated SDK as `opencode`, the primary frontend as `tui`, additional frontends through `tuis`, and the primary UI as `ui`. Every `Tui` has the same `{ ui, close, recording }` shape and `{ recording, viewport }` options. Project setup now uses the shared `Project`, `Setup`, `SetupContext`, and `ProjectFileSystem` types. Remove duplicate script UI types, flattened frontend handles, partial settlement controls, root-level raw simulation exports, convenience CLI aliases, and the `wait` helper. - -### Patch Changes - -- c8f5b51: Attach one best-effort normalized terminal frame to UI polling timeout errors without retaining screenshot artifacts. -- c8f5b51: Render OpenCode's full UI symbol set with deterministic bundled fallback fonts instead of platform fonts or hand-drawn symbol exceptions. -- c8f5b51: Preserve the managed driver's `Scope.Scope` requirement when consumed from TypeScript workspace applications. -- 40d2241: Render the background completion arrow correctly in exported recordings. -- 11cbbfd: Preserve the canonical OpenCode UI command shapes for optional named screenshots and key presses. diff --git a/packages/drive/LICENSE b/packages/drive/LICENSE deleted file mode 100644 index cf52343bc39..00000000000 --- a/packages/drive/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2026 opencode-drive - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/packages/drive/README.md b/packages/drive/README.md deleted file mode 100644 index ca06d5282d2..00000000000 --- a/packages/drive/README.md +++ /dev/null @@ -1,565 +0,0 @@ -# opencode-drive - -This project gives your agents control over OpenCode: - -- Run it during development and let your agents see and poke at the running instance -- Allow your agents to run it in headless mode and drive it to test things - -## Requirements - -OpenCode Drive requires [Bun](https://bun.sh/) 1.3.14 or newer. MP4 recording export also requires `ffmpeg` on `PATH`. - -Install dependencies with: - -```sh -bun install -``` - -## Skill - -```sh -npx skills add anomalyco/opencode --agent opencode --skill opencode-drive -``` - -## Effect programs - -The primary way to automate OpenCode is a default-exported, fully provided -Effect. Drive type-checks the module contract, compiles the script and its local -imports against the launching Drive toolchain, then validates and runs the -export in an isolated Bun process: - -```ts -// drive.ts -import { OpenCodeDriver } from "opencode-drive" - -export default OpenCodeDriver.use(({ ui }) => ui.screenshot("home")) -``` - -```sh -opencode-drive run ./drive.ts -``` - -`run` accepts exactly one module path. It rejects `--command.*` flags, other -command flags, and application arguments after `--`. Backend and UI behavior -belongs in the Effect program. - -`OpenCodeDriver.use` is the safe default. It owns the scope, observes backend -failure, settles queued LLM work, closes every TUI, and exports recordings -whether the program succeeds or fails: - -```ts -import { Effect } from "effect" -import { Llm, OpenCodeDriver } from "opencode-drive" - -export default OpenCodeDriver.use( - { - project: { - git: true, - files: { "src/value.ts": "export const value = 1\n" }, - }, - }, - ({ ui, llm }) => - Effect.gen(function* () { - yield* llm.queue(Llm.text("The value is 1.")) - yield* ui.submit("Read src/value.ts") - yield* ui.waitFor("The value is 1.") - }), -) -``` - -Use `OpenCodeDriver.useReport` when the program also needs structured evidence. -It returns the program value plus a schema-validated report containing branded -artifact and recording paths, retention, and the negotiated or legacy -compatibility of every simulation endpoint: - -```ts -const result = yield * OpenCodeDriver.useReport(options, program) -yield * Effect.log(result.report) -``` - -Drive prefers `simulation.handshake` and explicitly records legacy fallback. -Require negotiation when protocol skew must fail before the program runs: - -```ts -OpenCodeDriver.use( - { - opencode: { compatibility: "required" }, - }, - program, -) -``` - -Additional TUIs share the same server and LLM controller: - -```ts -import { Effect } from "effect" -import { OpenCodeDriver } from "opencode-drive" - -export default OpenCodeDriver.use((oc) => - Effect.gen(function* () { - const secondary = yield* oc.tuis.launch({ - viewport: { cols: 120, rows: 40 }, - }) - yield* oc.ui.screenshot("primary") - yield* secondary.ui.screenshot("secondary") - }), -) -``` - -The generated OpenCode SDK client is exposed as `opencode`; launched frontend -processes are `tui` and `tuis`. This keeps SDK calls distinct from terminal UI -control: - -```ts -const health = yield * opencode.health.get() -const frame = yield * tui.ui.capture() -``` - -Enable recording per TUI. Settlement finishes each timeline and exports its -video automatically: - -```ts -import { Effect } from "effect" -import { OpenCodeDriver } from "opencode-drive" - -export default OpenCodeDriver.use({ tui: { recording: true } }, (oc) => - Effect.gen(function* () { - yield* oc.ui.screenshot("recorded-home") - yield* Effect.log(`recording will be exported to ${oc.tui.recording?.path}`) - }), -) -``` - -Settlement errors are program failures. For example, output after a terminal -LLM event fails the run while `use` still closes TUIs and attempts recording -export: - -```ts -import { Effect } from "effect" -import { Llm, OpenCodeDriver } from "opencode-drive" - -export default OpenCodeDriver.use(({ ui, llm }) => - Effect.gen(function* () { - yield* llm.queue(Llm.finish(), Llm.text("too late")) - yield* ui.submit("trigger a response") - }), -) -``` - -Use `OpenCodeDriver.make` only when the program needs explicit terminal -settlement. It requires a scope, and `driver.settle()` must run before leaving -that scope: - -```ts -import { Effect } from "effect" -import { OpenCodeDriver } from "opencode-drive" - -export default Effect.scoped( - Effect.gen(function* () { - const driver = yield* OpenCodeDriver.make() - yield* driver.ui.screenshot("home") - yield* driver.settle() - }), -) -``` - -Use `opencode-drive check ./drive.ts` and `start --script` for the Effect-native -`defineScript` workflow described below. - -## OpenCode development - -Run this: - -```sh -OPENCODE_DRIVE=1 bun run dev -``` - -If you installed the skill file, OpenCode will be able to see and interact with the running instance. - -## Using with agents - -Install the skill file above and ask the agent to test various flows with the app. Start with `--record` when you want a video; `opencode-drive stop` then exports the complete session and prints its path. - -Screenshots and videos are written beneath `/opencode-drive/output//`, so named outputs cannot overwrite media from earlier runs or restarts. Set `OPENCODE_DRIVE_MEDIA_DIR` to use a different media root. - -Captured frames use the official full Commit Mono v1.143 faces at 16px with bundled Noto Symbols, Symbols 2, and Math fallbacks in a fixed 10x20 cell grid. Set `OPENCODE_DRIVE_FONT` to a comma-separated list of font files (for example regular, bold, italic, and bold-italic faces) to use a different primary capture font without changing the symbol fallback or cell geometry. - -## UI development - -If you are doing UI development in OpenCode, you might want to run it in a simulated mode. This allows `opencode-drive` to drive it and always put it into a state that you want to see. - -Run it in visible mode: - -```sh -opencode-drive start --visible --dev ~/projects/opencode -``` - -Initialize first when you need to customize the isolated environment before OpenCode starts: - -```sh -artifacts=$(opencode-drive init --name demo) -cp -R ./fixtures/home/. "$artifacts/" -cp -R ./fixtures/project/. "$artifacts/files/" -opencode-drive start --name demo --visible --dev ~/projects/opencode -``` - -`start` reuses the prepared artifacts for that name. If `init` was not run, `start` initializes them automatically. - -Drive uses an in-memory OpenCode database by default. Set -`OPENCODE_DRIVE_DB` when a test restarts the OpenCode service and needs sessions -to survive the replacement process. Relative paths resolve inside the isolated -run's OpenCode data directory: - -```sh -OPENCODE_DRIVE_DB=restart.sqlite \ - opencode-drive start --name restart-demo --script ./restart.ts -``` - -Remove artifact directories left by sessions that are no longer active: - -```sh -opencode-drive prune -``` - -Prune one inactive instance's artifacts by instance name, or force removal of all artifact directories: - -```sh -opencode-drive prune --name demo -opencode-drive prune --force -``` - -While developing, you can run `opencode-drive restart` to restart only the UI (the server will persist as a separate process). Do this with agents, and they will always restart and get the UI where you want it to be automatically. - -View the [skills file](https://github.com/anomalyco/opencode/blob/v2/.opencode/skills/opencode-drive/SKILL.md) for more details about the CLI. - -## Effect script API - -Scripted runs use one fully typed, Effect-only definition. `setup` and `run` -return Effects; Promise callbacks are not part of the API: - -```sh -opencode-drive script init ./drive.ts -``` - -This creates a canonical starter without overwriting an existing file. The -generated script is ready for `opencode-drive check ./drive.ts` and -`start --script ./drive.ts`. - -```ts -import { defineScript, Effect, Llm } from "opencode-drive" - -export default defineScript({ - config: { - autoupdate: false, - }, - tuiConfig: { - theme: "system", - }, - project: { - git: true, - files: { - "src/example.ts": "export const value = 1\n", - }, - }, - setup: ({ config, tuiConfig }) => - Effect.sync(() => { - config.username = "Drive" - tuiConfig.scroll_speed = 1 - }), - run: ({ ui, llm }) => - Effect.gen(function* () { - yield* ui.submit("Read src/example.ts") - yield* llm.send(Llm.text("The value is 1.")) - yield* ui.waitFor("The value is 1.") - }), -}) -``` - -`project.files` seeds the isolated project before `setup` runs. With -`project.git: true`, Drive creates a fresh repository and commits the complete -pre-launch state, including files written in `setup`. A prepared repository is -never replaced; omit `project.git` when an `init` step supplies Git history. -Declared `config` and `tuiConfig` values are deeply merged over fixture -`.opencode/opencode.jsonc` and `.opencode/tui.jsonc` files. Arrays replace -instead of merging, and mutations made in `setup` take final precedence. - -Attach arbitrary provider-backed tools at runtime with their JSON schemas, then -take and settle native OpenCode invocations by model call ID. `attach` replaces -the complete dynamic set atomically; it does not affect the built-in adapters -configured through the driver or script `tools` option. - -```ts -import { Effect } from "effect" -import { Llm, OpenCodeDriver } from "opencode-drive" - -export default OpenCodeDriver.use(({ tools, llm, ui }) => - Effect.gen(function* () { - yield* tools.attach({ - tools: [ - { - name: "lookup", - description: "Look up a value", - inputSchema: { - type: "object", - properties: { query: { type: "string" } }, - required: ["query"], - }, - outputSchema: { - type: "object", - properties: { answer: { type: "number" } }, - required: ["answer"], - }, - options: { codemode: false }, - }, - ], - }) - yield* llm.queue( - Llm.toolCall({ - index: 0, - id: "call_lookup", - name: "lookup", - input: { query: "meaning" }, - }), - Llm.finish("tool-calls"), - ) - yield* ui.submit("Look up the meaning") - - const lookup = yield* tools.take("call_lookup") - yield* lookup.progress({ - structured: { phase: "searching" }, - content: [{ type: "text", text: "Searching" }], - }) - yield* lookup.finish({ - structured: { answer: 42 }, - content: [{ type: "text", text: "42" }], - }) - }), -) -``` - -Drive owns progress sequence numbers and retries uncertain operations without -rerunning a claimed call. `awaitCancelled()` completes when OpenCode interrupts -the native invocation before `finish` or `fail`. Dynamic registrations survive -the tool-only controller reconnecting; an intentional server generation change -cancels unresolved calls and reapplies the desired set after launch. - -Declare which built-in tools Drive should intercept with `tools`, then control -their invocations inside `run`. Each tool controller accepts calls in arrival -order or by the stable call ID chosen in `Llm.toolCall`: - -```ts -import { Effect } from "effect" -import { defineScript, Llm } from "opencode-drive" - -export default defineScript({ - tools: ["shell"], - run: ({ ui, llm, tools }) => - Effect.gen(function* () { - const shells = yield* tools.control("shell") - yield* llm.queue( - Llm.toolCall({ - index: 0, - id: "call_shell", - name: "shell", - input: { command: "deploy production" }, - }), - Llm.finish("tool-calls"), - ) - yield* ui.submit("Deploy production") - const shell = yield* shells.take("call_shell") - yield* shell.progress(`Running: ${shell.input.command}...\n`) - yield* shell.succeed({ output: "Controlled output\n", exit: 0 }) - }), -}) -``` - -Use `calls.take(id)` to coordinate known parallel calls independently, or -`calls.take()` to accept the next unclaimed invocation. A controlled call can -emit progress and then succeed or fail exactly once. `awaitInterrupted()` -observes OpenCode interruption or transport disconnection. Drive interrupts -all unresolved calls when it shuts down. - -The original `tools(registry)` callback remains available for fixed handlers -that do not need orchestration from `run`. Foreground handler Effects are -interrupted when OpenCode interrupts the session, the transport disconnects, -or Drive shuts down. Detached background shell handlers continue after their -launch response and are interrupted when Drive shuts down. - -Only declared or registered tools are replaced. Unhandled tools continue to -use OpenCode's real implementations. Each `progress` value replaces the -visible tool output; send accumulated output when earlier lines should remain -visible. -Supported adapters are `shell`, `webfetch`, and `websearch`; each handler -receives its canonical typed V2 input and maintains an independent call index. -When a shell call sets `background: true`, Drive returns immediately with the -OpenCode tool call ID as `shellID`, keeps the handler running, and injects the -terminal `completed`, `error`, or `cancelled` result into the session -automatically. Background handlers are cancelled when Drive shuts down. - -Type-check every new or edited script before running it: - -```sh -opencode-drive check ./drive.ts -``` - -Drive resolves its script API, Effect, Bun declarations, and `tsgo` from the -launching installation without installing packages or modifying the script's -directory. When it detects an old Promise-style `setup`, `run`, or `ui.waitFor` -callback, it prints the equivalent Effect shape after the TypeScript -diagnostics. Use `Effect.sleep(milliseconds)` for unconditional delays. - -The `fs`, `ui`, `llm`, `tools`, `server`, and `tuis` capabilities expose -Effect-returning operations. Compose them with `yield*`, `Effect.flatMap`, or -other Effect operators. Scripts receive the same `Ui`, `Tui`, `Tuis`, and TUI -options as `OpenCodeDriver`; `defineScript` does not define a second -programmatic interface. Predicates passed to `ui.waitFor` may return a boolean -or an Effect. Set `launch: "manual"` to launch the shared OpenCode server and -every TUI explicitly: - -```ts -import { Effect } from "effect" -import { defineScript } from "opencode-drive" - -export default defineScript({ - launch: "manual", - run: ({ ui, server, tuis }) => - Effect.gen(function* () { - // ui is null in manual mode. - yield* server.launch() - const alice = yield* tuis.launch("alice") - const bob = yield* tuis.launch("bob") - yield* alice.ui.submit("Hello from Alice") - yield* bob.ui.screenshot("bob-view") - }), -}) -``` - -Only one server may be launched per script. All TUIs share its LLM backend. TUI -processes and compiled script artifacts are cleaned up when the script ends. - -`yield* server.kill()` stops the server so it can be launched again later. -`yield* tui.close()` closes a TUI, after which its name may be reused. - -Pass `{ recording: true }` to record an individual TUI: - -```ts -const alice = yield * tuis.launch("alice", { recording: true }) -yield * alice.ui.submit("Hello") -yield * alice.close() -``` - -Recordings are exported when the script settles. Call -`alice.recording.finish()` only when the video is needed before settlement. - -Background title requests receive `OpenCode Drive` by default and do not -consume `llm.queue`, `llm.send`, or `llm.serve` responses. Manual-launch -scripts can customize them before starting the server: - -```ts -yield * llm.title(() => Effect.succeed("Custom title")) -yield * server.launch() -``` - -Use `yield* llm.send(...)` to wait for and complete the next request or `yield* -llm.queue(...)` to declare future responses upfront. For ongoing responses, -the handler passed to `llm.serve` returns an Effect `Stream`: - -```ts -import { Stream } from "effect" -import { Llm } from "opencode-drive" - -yield * llm.serve((_request, index) => Stream.make(Llm.text(`Response ${index + 1}`))) -``` - -The backend connection, default `finish("stop")`, and cleanup are automatic. -Cancellation is represented by Effect interruption: interrupting the script or -the fiber running an operation interrupts its in-flight work and runs scoped -finalizers. There is no Promise compatibility shim or separate cancellation -API. All public script types are canonically defined in -[`src/script/types.ts`](./src/script/types.ts), which can be provided directly -to an authoring agent. - -`Llm.text()` streams text in randomized chunks. It defaults to a 2 ms delay and -a target chunk size of 15 characters, varied by plus or minus 5 per chunk: - -```ts -Llm.text("A deliberately slower response", { delay: 20, chunkSize: 10 }) -``` - -`Llm.reasoning()` accepts the same streaming options. Use -`Llm.pause(milliseconds)` to add timing between any two outputs. - -`Llm.toolCall()` emits a complete call atomically by default. Pass the same -streaming options to expose partial JSON input while it is generated: - -```ts -Llm.toolCall( - { - index: 0, - id: "call_patch", - name: "patch", - input: { patchText: "*** Begin Patch\n*** End Patch" }, - }, - { delay: 40, chunkSize: 12 }, -) -``` - -Finish a tool-calling response with `Llm.finish("tool-calls")`. Streamed calls -drive OpenCode's normal tool-input start, delta, and end lifecycle; `Llm.raw()` -remains available for provider-wire scenarios not covered by these helpers. - -Current OpenCode simulation endpoints expose a semantic UI tree alongside -renderer state and terminal capture. Use `ui.snapshot()` for the complete -versioned tree or `ui.getNode()` to poll for one exact semantic match. Semantic -nodes carry stable IDs, optional occurrence identity, role, label, hierarchy, -component-owned state, and a transient element handle that `ui.click()` can -resolve safely: - -```ts -const allow = - yield * - ui.getNode({ - role: "option", - label: "Allow once", - selected: true, - disabled: false, - }) - -yield * ui.click(allow) -``` - -`ui.snapshot` and atomic semantic clicks are negotiated as optional -capabilities so ordinary operations remain compatible with older OpenCode -checkouts. Calling `ui.snapshot()`, `ui.getNode()`, or `ui.click(node)` when its -required capability is unavailable fails locally with `UiCapabilityError`. - -Capability errors are typed and the concrete classes are grouped under -`Errors`. UI timeouts remain owner-fatal even when caught; recover locally -from errors for which the script has a truthful fallback: - -Polling timeouts from `ui.waitFor`, `ui.getElement`, and `ui.getNode` make one -best-effort, bounded `ui.capture` request. When it succeeds, the resulting -normalized terminal frame is available as `error.frame` without creating or -retaining a screenshot file. RPC-level timeouts and failed diagnostic captures -leave `error.frame` undefined. - -```ts -import { Effect } from "effect" -import { Errors } from "opencode-drive" - -yield * - ui - .getElement({ editor: true }) - .pipe(Effect.catchTag("UiElementAmbiguousError", (error) => Effect.logWarning(`Matched ${error.count} editors`))) - -const isFileSystemError = (error: unknown) => error instanceof Errors.FileSystemError -``` - -## Release validation - -Before publishing a release, run the non-publishing validation command to -check, test, and inspect the packed artifact: - -```sh -bun run release:validate -``` diff --git a/packages/drive/RELEASING.md b/packages/drive/RELEASING.md deleted file mode 100644 index 734ae592d91..00000000000 --- a/packages/drive/RELEASING.md +++ /dev/null @@ -1,27 +0,0 @@ -# Releasing opencode-drive - -`opencode-drive` keeps its own version line. OpenCode product releases must not rewrite its version. - -The imported baseline is `1.4.3` and the workspace package remains `private` until release setup is complete. -Do not remove that guard or publish from this repository until both release gates are complete: - -1. The versions of `@opencode-ai/client` and `@opencode-ai/protocol` written into the packed Drive manifest are available on npm, including the `@opencode-ai/protocol/simulation` export. -2. npm package administration and trusted publishing move from `anomalyco/opencode-drive` to `anomalyco/opencode`. - -The npm package is currently maintained by `jlongster`, and its trusted publisher is the old repository's -`publish.yml`. James must add the destination release operator as an npm owner or update the trusted publisher -himself. Keep James as an owner through the first successful release from this repository. - -The first destination release will be `1.4.4`, which contains the pending special-key fix after `1.4.3`. Use a -dedicated GitHub-hosted workflow named `publish-drive.yml` with Node 24, npm trusted publishing, and -`id-token: write`. Its tag must be `opencode-drive-v1.4.4`; bare `v1.4.4` already belongs to OpenCode. - -Before enabling that workflow: - -1. Pack Drive and inspect the rewritten `package.json` inside the tarball. -2. Install the tarball in a clean Bun consumer and import every public export. -3. Run the installed `opencode-drive` binary and one scripted flow. -4. Configure npm's trusted publisher for `anomalyco/opencode` and `publish-drive.yml`. -5. Publish the namespaced tag and verify npm provenance points at this repository and workflow. - -After the first successful destination release, disable the old publish workflow and archive the old repository. diff --git a/packages/drive/assets/fonts/commit-mono/CommitMono-400-Italic.otf b/packages/drive/assets/fonts/commit-mono/CommitMono-400-Italic.otf deleted file mode 100644 index 94a5a7653d4..00000000000 Binary files a/packages/drive/assets/fonts/commit-mono/CommitMono-400-Italic.otf and /dev/null differ diff --git a/packages/drive/assets/fonts/commit-mono/CommitMono-400-Regular.otf b/packages/drive/assets/fonts/commit-mono/CommitMono-400-Regular.otf deleted file mode 100644 index 9984c70889d..00000000000 Binary files a/packages/drive/assets/fonts/commit-mono/CommitMono-400-Regular.otf and /dev/null differ diff --git a/packages/drive/assets/fonts/commit-mono/CommitMono-700-Italic.otf b/packages/drive/assets/fonts/commit-mono/CommitMono-700-Italic.otf deleted file mode 100644 index 90aabfa51d0..00000000000 Binary files a/packages/drive/assets/fonts/commit-mono/CommitMono-700-Italic.otf and /dev/null differ diff --git a/packages/drive/assets/fonts/commit-mono/CommitMono-700-Regular.otf b/packages/drive/assets/fonts/commit-mono/CommitMono-700-Regular.otf deleted file mode 100644 index 4e6e24e94b4..00000000000 Binary files a/packages/drive/assets/fonts/commit-mono/CommitMono-700-Regular.otf and /dev/null differ diff --git a/packages/drive/assets/fonts/commit-mono/license.txt b/packages/drive/assets/fonts/commit-mono/license.txt deleted file mode 100644 index a81f7dd5956..00000000000 --- a/packages/drive/assets/fonts/commit-mono/license.txt +++ /dev/null @@ -1,90 +0,0 @@ -This Font Software is licensed under the SIL Open Font License, Version 1.1. -This license is copied below, and is also available with a FAQ at: -http://scripts.sil.org/OFL - ------------------------------------------------------------ -SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 ------------------------------------------------------------ - -PREAMBLE -The goals of the Open Font License (OFL) are to stimulate worldwide -development of collaborative font projects, to support the font creation -efforts of academic and linguistic communities, and to provide a free and -open framework in which fonts may be shared and improved in partnership -with others. - -The OFL allows the licensed fonts to be used, studied, modified and -redistributed freely as long as they are not sold by themselves. The -fonts, including any derivative works, can be bundled, embedded, -redistributed and/or sold with any software provided that any reserved -names are not used by derivative works. The fonts and derivatives, -however, cannot be released under any other type of license. The -requirement for fonts to remain under this license does not apply -to any document created using the fonts or their derivatives. - -DEFINITIONS -"Font Software" refers to the set of files released by the Copyright -Holder(s) under this license and clearly marked as such. This may -include source files, build scripts and documentation. - -"Reserved Font Name" refers to any names specified as such after the -copyright statement(s). - -"Original Version" refers to the collection of Font Software components as -distributed by the Copyright Holder(s). - -"Modified Version" refers to any derivative made by adding to, deleting, -or substituting -- in part or in whole -- any of the components of the -Original Version, by changing formats or by porting the Font Software to a -new environment. - -"Author" refers to any designer, engineer, programmer, technical -writer or other person who contributed to the Font Software. - -PERMISSION & CONDITIONS -Permission is hereby granted, free of charge, to any person obtaining -a copy of the Font Software, to use, study, copy, merge, embed, modify, -redistribute, and sell modified and unmodified copies of the Font -Software, subject to the following conditions: - -1) Neither the Font Software nor any of its individual components, -in Original or Modified Versions, may be sold by itself. - -2) Original or Modified Versions of the Font Software may be bundled, -redistributed and/or sold with any software, provided that each copy -contains the above copyright notice and this license. These can be -included either as stand-alone text files, human-readable headers or -in the appropriate machine-readable metadata fields within text or -binary files as long as those fields can be easily viewed by the user. - -3) No Modified Version of the Font Software may use the Reserved Font -Name(s) unless explicit written permission is granted by the corresponding -Copyright Holder. This restriction only applies to the primary font name as -presented to the users. - -4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font -Software shall not be used to promote, endorse or advertise any -Modified Version, except to acknowledge the contribution(s) of the -Copyright Holder(s) and the Author(s) or with their explicit written -permission. - -5) The Font Software, modified or unmodified, in part or in whole, -must be distributed entirely under this license, and must not be -distributed under any other license. The requirement for fonts to -remain under this license does not apply to any document created -using the Font Software. - -TERMINATION -This license becomes null and void if any of the above conditions are -not met. - -DISCLAIMER -THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT -OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE -COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL -DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM -OTHER DEALINGS IN THE FONT SOFTWARE. \ No newline at end of file diff --git a/packages/drive/assets/fonts/noto/NotoSansMath-Regular.ttf b/packages/drive/assets/fonts/noto/NotoSansMath-Regular.ttf deleted file mode 100644 index 7e505c9bad2..00000000000 Binary files a/packages/drive/assets/fonts/noto/NotoSansMath-Regular.ttf and /dev/null differ diff --git a/packages/drive/assets/fonts/noto/NotoSansSymbols.ttf b/packages/drive/assets/fonts/noto/NotoSansSymbols.ttf deleted file mode 100644 index a0061bfbcbb..00000000000 Binary files a/packages/drive/assets/fonts/noto/NotoSansSymbols.ttf and /dev/null differ diff --git a/packages/drive/assets/fonts/noto/NotoSansSymbols2-Regular.ttf b/packages/drive/assets/fonts/noto/NotoSansSymbols2-Regular.ttf deleted file mode 100644 index caf89dd0e60..00000000000 Binary files a/packages/drive/assets/fonts/noto/NotoSansSymbols2-Regular.ttf and /dev/null differ diff --git a/packages/drive/assets/fonts/noto/license.txt b/packages/drive/assets/fonts/noto/license.txt deleted file mode 100644 index 258bf7c6bac..00000000000 --- a/packages/drive/assets/fonts/noto/license.txt +++ /dev/null @@ -1,93 +0,0 @@ -Copyright 2022 The Noto Project Authors (https://github.com/notofonts/symbols) - -This Font Software is licensed under the SIL Open Font License, Version 1.1. -This license is copied below, and is also available with a FAQ at: -https://scripts.sil.org/OFL - - ------------------------------------------------------------ -SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 ------------------------------------------------------------ - -PREAMBLE -The goals of the Open Font License (OFL) are to stimulate worldwide -development of collaborative font projects, to support the font creation -efforts of academic and linguistic communities, and to provide a free and -open framework in which fonts may be shared and improved in partnership -with others. - -The OFL allows the licensed fonts to be used, studied, modified and -redistributed freely as long as they are not sold by themselves. The -fonts, including any derivative works, can be bundled, embedded, -redistributed and/or sold with any software provided that any reserved -names are not used by derivative works. The fonts and derivatives, -however, cannot be released under any other type of license. The -requirement for fonts to remain under this license does not apply -to any document created using the fonts or their derivatives. - -DEFINITIONS -"Font Software" refers to the set of files released by the Copyright -Holder(s) under this license and clearly marked as such. This may -include source files, build scripts and documentation. - -"Reserved Font Name" refers to any names specified as such after the -copyright statement(s). - -"Original Version" refers to the collection of Font Software components as -distributed by the Copyright Holder(s). - -"Modified Version" refers to any derivative made by adding to, deleting, -or substituting -- in part or in whole -- any of the components of the -Original Version, by changing formats or by porting the Font Software to a -new environment. - -"Author" refers to any designer, engineer, programmer, technical -writer or other person who contributed to the Font Software. - -PERMISSION & CONDITIONS -Permission is hereby granted, free of charge, to any person obtaining -a copy of the Font Software, to use, study, copy, merge, embed, modify, -redistribute, and sell modified and unmodified copies of the Font -Software, subject to the following conditions: - -1) Neither the Font Software nor any of its individual components, -in Original or Modified Versions, may be sold by itself. - -2) Original or Modified Versions of the Font Software may be bundled, -redistributed and/or sold with any software, provided that each copy -contains the above copyright notice and this license. These can be -included either as stand-alone text files, human-readable headers or -in the appropriate machine-readable metadata fields within text or -binary files as long as those fields can be easily viewed by the user. - -3) No Modified Version of the Font Software may use the Reserved Font -Name(s) unless explicit written permission is granted by the corresponding -Copyright Holder. This restriction only applies to the primary font name as -presented to the users. - -4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font -Software shall not be used to promote, endorse or advertise any -Modified Version, except to acknowledge the contribution(s) of the -Copyright Holder(s) and the Author(s) or with their explicit written -permission. - -5) The Font Software, modified or unmodified, in part or in whole, -must be distributed entirely under this license, and must not be -distributed under any other license. The requirement for fonts to -remain under this license does not apply to any document created -using the Font Software. - -TERMINATION -This license becomes null and void if any of the above conditions are -not met. - -DISCLAIMER -THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT -OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE -COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL -DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM -OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/packages/drive/bin/opencode-drive b/packages/drive/bin/opencode-drive deleted file mode 100755 index e0df131d5ee..00000000000 --- a/packages/drive/bin/opencode-drive +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env bun -import "../src/cli/index.js" diff --git a/packages/drive/compile/public-api.ts b/packages/drive/compile/public-api.ts deleted file mode 100644 index 7e716f94530..00000000000 --- a/packages/drive/compile/public-api.ts +++ /dev/null @@ -1,46 +0,0 @@ -import * as Effect from "effect/Effect" -import { OpenCodeDriver, Tool } from "../src/index.js" -import type { Frontend, Project, Tui, Tuis, Ui } from "../src/index.js" -import type { ScriptContext } from "../src/script/types.js" - -type Equal = - (() => Value extends Left ? 1 : 2) extends () => Value extends Right ? 1 : 2 ? true : false - -type Assert = Value - -export type ScriptUiIsCanonical = Assert> -export type ScriptTuiIsCanonical = Assert> -export type ScriptTuisAreCanonical = Assert> -export type ScriptToolsAreCanonical = Assert> -export type DriverToolsAreCanonical = Assert> -export type LaunchedTuiIsCanonical = Assert>, Tui>> -export type ResizeIsCanonicalAction = Assert< - Equal< - Extract, - { - readonly type: "ui.resize" - readonly cols: number - readonly rows: number - } - > -> -export type DriverProjectIsCanonical = Assert, Project>> - -const zeroConfig = OpenCodeDriver.use(() => Effect.void) -export type ZeroConfigUseIsRunnable = Assert, never>> - -const controlledOptions: OpenCodeDriver.Options = { tools: ["shell"] } -declare const controls: Tool.Controls -const shellCalls = controls.control("shell") -declare const dynamicTools: Tool.AttachParams -const attached = controls.attach(dynamicTools) -const dynamicCall = controls.take("call_lookup") -declare const toolName: Tool.Name -controls.control(toolName) -export type ShellControlIsTyped = Assert< - Equal, Tool.ControlledCalls> -> -export type DynamicAttachIsTyped = Assert, void>> -export type DynamicCallIsTyped = Assert, Tool.Invocation>> -const controlled = OpenCodeDriver.use(controlledOptions, ({ tools }) => tools.control("shell").pipe(Effect.asVoid)) -export type ControlledUseIsRunnable = Assert, never>> diff --git a/packages/drive/docs/open-code-driver-api.md b/packages/drive/docs/open-code-driver-api.md deleted file mode 100644 index 4278ab02bcc..00000000000 --- a/packages/drive/docs/open-code-driver-api.md +++ /dev/null @@ -1,500 +0,0 @@ -# OpenCode Driver API - -Status: exploratory implementation, settled call sites only - -This document records interface shapes that have been accepted during design. It intentionally omits unresolved alternatives rather than presenting them as competing proposals. - -Internal resource ownership and desugaring are documented in [OpenCode Driver Architecture](./open-code-driver-architecture.md). - -## Run Effect programs from the CLI - -`opencode-drive run ` is the primary CLI entrypoint. The module must -default-export an `Effect<_, _, never>`. Before importing the module, Drive -generates and type-checks a contract entrypoint that assigns its default export -to that fully provided Effect type. Drive then imports the module, verifies the -value with `Effect.isEffect`, and yields it directly from the command handler. -There is no nested runtime or detached owner. - -```ts -import { OpenCodeDriver } from "opencode-drive" - -export default OpenCodeDriver.use(({ ui }) => ui.screenshot("home")) -``` - -```sh -opencode-drive run ./drive.ts -``` - -The command accepts no flags and no arguments after `--`. Use the driver API in -the module for simulation control. `opencode-drive check` validates Effect-only -`defineScript` modules, and `start --script` executes them. - -## `use` settles one scoped driver - -`OpenCodeDriver.use(run)` is the zero-configuration top-level interface; -`OpenCodeDriver.use(options, run)` configures the same lifecycle. Both acquire -the driver returned by `make`, run the program, validate queued LLM work, -finish recordings, close TUIs, export videos, and then release the server -and project scope. - -`OpenCodeDriver.useReport(run)` and `useReport(options, run)` have the same lifecycle semantics and -returns both the user value and a compact `RunReport`. The report contains -validated artifact and recording paths, retention, and endpoint compatibility. -Set `opencode.compatibility` to `"required"` or `"preferred"`; -the default is `"preferred"`, which negotiates when supported and reports an -explicit legacy profile otherwise. - -```ts -import { NodeRuntime } from "@effect/platform-node" -import { Effect } from "effect" -import { Llm, OpenCodeDriver } from "opencode-drive" - -const program = OpenCodeDriver.use( - { - project: { - git: true, - files: { - "src/example.ts": "export const value = 1\n", - }, - }, - config: { - autoupdate: false, - }, - tui: { - viewport: { - cols: 96, - rows: 32, - }, - recording: false, - }, - }, - ({ ui, llm }) => - Effect.gen(function* () { - yield* llm.queue(Llm.text("The value is 1.")) - - yield* ui.submit("Read src/example.ts") - yield* ui.waitFor("The value is 1.") - }), -) - -NodeRuntime.runMain(program) -``` - -`OpenCodeDriver.make(...)` remains the lower-level scoped constructor for programs that need to control settlement explicitly. Call `driver.settle()` before leaving its scope. `settle()` is terminal: it rejects new TUIs and LLM responses, validates queued work, stops TUIs, and exports recordings. - -```ts -const program = Effect.scoped( - Effect.gen(function* () { - const driver = yield* OpenCodeDriver.make(options) - yield* driver.ui.submit("Hello") - yield* driver.settle() - }), -) -``` - -Capture font size is not part of this interface. The current renderer uses a fixed 16px font in 10-by-20 cells; the terminal catalog's `OPENCODE_DRIVE_FONT_SIZE=14` environment variable is currently ignored. - -The generated SDK client is `opencode`. The primary frontend process is `tui`, -its UI is also available directly as `ui`, and `tuis` launches more frontend -processes: - -```ts -const health = yield * driver.opencode.health.get() -const frame = yield * driver.tui.ui.capture() -const secondary = yield * driver.tuis.launch() -``` - -## The driver has one primary TUI and optional additional TUIs - -The `tui` section configures the primary frontend created by `make`. Its UI is exposed directly as `ui` for the common case. - -Additional TUIs connect to the same server and expose their own UI: - -```ts -const program = Effect.scoped( - Effect.gen(function* () { - const oc = yield* OpenCodeDriver.make({ - tui: { - viewport: { - cols: 96, - rows: 32, - }, - }, - }) - - const secondary = yield* oc.tuis.launch({ - viewport: { - cols: 120, - rows: 40, - }, - recording: true, - }) - - yield* oc.ui.submit("Prompt from the primary TUI") - yield* secondary.ui.submit("Prompt from the secondary TUI") - yield* oc.settle() - }), -) -``` - -`tuis.launch(options)` generates an identity. Pass a name as the first argument -when a stable identity is useful for logs, recordings, or closing and -relaunching the same TUI: `tuis.launch(name, options)`. - -```text - ╭────────────────╮ - │ OpenCodeDriver ├───────────────────────╮ - ╰────────┬───────╯ │ - ╭────────────────╰──────────────────╮ │ - ▼ ▼ │ -╭────────────────────────╮ ╭────────────────────╮ │ -│ Shared OpenCode Server │ │ Shared LLM Control │ │ -╰────────────┬───────────╯ ╰────────────────────╯ │ - ╰───────────────────────────────╮ │ - ▼ ▼ │ - ╭────────────────╮ ╭────────────────────╮ │ - │ Primary TUI │◀───────────│ Additional TUIs │◀─────╯ - ╰────────┬───────╯ ╰──────────┬─────────╯ - ╰───╮ ╭──────╯ - ▼ ▼ - ╭────╮ ╭───────────╮ - │ ui │ │ tui.ui │ - ╰────╯ ╰───────────╯ -``` - -## Common scripts destructure UI and LLM control - -Scripts that only need the primary TUI should normally destructure the driver: - -```ts -const driver = yield * OpenCodeDriver.make() -const { ui, llm } = driver - -yield * llm.queue(Llm.text("Hello from the simulated model.")) - -yield * ui.submit("Hello") -yield * ui.waitFor("Hello from the simulated model.") -yield * driver.settle() -``` - -Keep the aggregate value only when driver-wide capabilities such as `tuis` are needed: - -```ts -const oc = yield * OpenCodeDriver.make() -const secondary = yield * oc.tuis.launch() - -yield * oc.ui.screenshot("primary") -yield * secondary.ui.screenshot("secondary") -yield * oc.settle() -``` - -## Runtime tool control uses statically declared adapters - -Declare the built-in tool names Drive should intercept before OpenCode starts, -then control each invocation through the live `tools` capability. Undeclared -tools keep their real OpenCode implementations. - -```ts -const program = OpenCodeDriver.use({ tools: ["shell"] }, ({ tools, llm, ui }) => - Effect.gen(function* () { - const shells = yield* tools.control("shell") - yield* llm.queue( - Llm.toolCall({ - index: 0, - id: "call_build", - name: "shell", - input: { command: "bun run build" }, - }), - Llm.toolCall({ - index: 1, - id: "call_test", - name: "shell", - input: { command: "bun run test" }, - }), - Llm.finish("tool-calls"), - ) - yield* ui.submit("Build and test") - - const build = yield* shells.take("call_build") - const test = yield* shells.take("call_test") - yield* test.succeed({ output: "Tests passed\n", exit: 0 }) - yield* build.succeed({ output: "Build passed\n", exit: 0 }) - }), -) -``` - -`take(callID)` reserves and accepts one known invocation independently of -arrival order. `take()` accepts the oldest unclaimed invocation. Exact-ID -waiters take precedence over generic waiters, so parallel calls may settle in -any deliberate order. Each call may emit serialized progress and then succeed -or fail exactly once. `awaitInterrupted()` completes when transport or -controller interruption wins before terminal settlement. - -The program must take and terminally settle every intercepted invocation it -expects. Driver scope closure fails blocked `take` operations, interrupts -unresolved calls, and waits for transport cleanup. The callback-style -`tools(registry)` configuration remains available -for fixed handlers; callback-controlled tools are not also available through -the runtime `tools.control` capability. - -## Arbitrary tools use the provider-backed lifecycle - -`tools.attach({ tools })` atomically replaces the complete dynamic registration -set for the current run. Registrations use OpenCode's canonical JSON Schema, -permission, namespace, and CodeMode options. Static `shell`, `webfetch`, and -`websearch` adapters remain installed separately. - -```ts -yield * - tools.attach({ - tools: [ - { - name: "lookup", - description: "Look up a value", - inputSchema: { - type: "object", - properties: { query: { type: "string" } }, - required: ["query"], - }, - options: { codemode: false }, - }, - ], - }) - -const invocation = yield * tools.take("call_lookup") -yield * - invocation.progress({ - structured: { phase: "searching" }, - content: [{ type: "text", text: "Searching" }], - }) -yield * - invocation.finish({ - structured: { answer: 42 }, - content: [{ type: "text", text: "42" }], - }) -``` - -`take(callID)` matches `context.callID`, the model call ID supplied to -`Llm.toolCall`; `invocation.id` is the producer's transport identity. Drive -deduplicates invocation replay after a controller reconnect and retries -progress or terminal operations with the same producer identity and progress -sequence. `awaitCancelled()` observes OpenCode's native interruption. There is -no public cancel operation because cancellation flows from OpenCode to Drive. - -Attaching a dynamic effective name that collides with a configured static -adapter fails locally. Calling `attach({ tools: [] })` clears the dynamic set. -Older OpenCode revisions remain compatible with static adapters and ordinary -LLM control; dynamic attachment fails with `Tool.LifecycleError` when the six -tool lifecycle capabilities are unavailable. - -## LLM response description is separate from live LLM control - -`Llm` is a pure data module. `llm` is the live capability that queues, sends, and serves responses. - -```ts -yield * - llm.queue( - Llm.reasoning("Inspecting the file"), - Llm.pause(20), - Llm.text("The value is 1.", { - delay: 2, - chunkSize: 15, - }), - Llm.finish("stop"), - ) -``` - -Each constructor returns an ordinary serializable value. Raw values with the same schema remain accepted. - -Tool calls remain atomic when options are omitted. Supplying stream options -serializes the input to JSON and emits provider-neutral partial tool input when -the endpoint advertises that capability. Older endpoints retain the existing -OpenAI-compatible fallback: - -```ts -Llm.toolCall( - { - index: 0, - id: "call_patch", - name: "patch", - input: { patchText: "*** Begin Patch\n*** End Patch" }, - }, - { delay: 40, chunkSize: 12 }, -) -``` - -The authoritative schema is a manual union of independently named variants: - -```ts -export const Text = Schema.Struct({ - type: Schema.Literal("text"), - text: Schema.String, - options: Schema.optionalKey(StreamOptions), -}) -export interface Text extends Schema.Schema.Type {} - -export const Reasoning = Schema.Struct({ - type: Schema.Literal("reasoning"), - text: Schema.String, - options: Schema.optionalKey(StreamOptions), -}) -export interface Reasoning extends Schema.Schema.Type {} - -export const Pause = Schema.Struct({ - type: Schema.Literal("pause"), - milliseconds: NonNegativeMilliseconds, -}) -export interface Pause extends Schema.Schema.Type {} - -export const Finish = Schema.Struct({ - type: Schema.Literal("finish"), - reason: Schema.optionalKey(FinishReason), -}) -export interface Finish extends Schema.Schema.Type {} - -export const Output = Schema.Union([Text, Reasoning, Pause, Finish, ToolCall, Raw, Disconnect]) -export type Output = Schema.Schema.Type -``` - -Pure constructors delegate to those individual schemas: - -```ts -export const text = (text: string, options?: StreamOptions): Text => - Text.make({ - type: "text", - text, - ...(options ? { options } : {}), - }) -``` - -No `.cases` interface appears in userland. - -## One `queue` call describes one future model response - -Multiple outputs in one call are ordered events within one response: - -```ts -yield * - llm.queue( - Llm.toolCall({ - index: 0, - id: "call_permission_capture", - name: "patch", - input: { - patchText, - }, - }), - Llm.finish("tool-calls"), - ) -``` - -A second call queues a response for the next model request: - -```ts -yield * llm.queue(Llm.text("The fixture was updated.")) -``` - -Responses without an explicit terminal output finish with `"stop"`. Title requests remain separate and do not consume this queue. - -## `defineScript` is Effect-only - -`defineScript` does not provide a Promise adapter. Its `setup` and `run` -callbacks return Effects, as do operations on `fs`, `ui`, `llm`, `server`, -and `tuis`. Compose script operations in the same runtime with -`yield*` or Effect operators. - -### Primary UI - -```ts -import { Effect } from "effect" -import { defineScript, Llm } from "opencode-drive" - -export default defineScript({ - run: ({ ui, llm }) => - Effect.gen(function* () { - yield* llm.queue(Llm.text("The value is 1.")) - yield* ui.submit("Read src/example.ts") - yield* ui.waitFor("The value is 1.") - }), -}) -``` - -`llm.serve` accepts a handler that returns an Effect `Stream`. The registration -itself is also an Effect: - -```ts -import { Stream } from "effect" -import { Llm } from "opencode-drive" - -yield * llm.serve((_request, index) => Stream.make(Llm.text(`Response ${index + 1}`))) -``` - -Predicates passed to `ui.waitFor` may return a boolean or an Effect. -Capability methods expose typed error channels. Concrete tagged errors are -available from the `Errors` namespace. - -`ui.snapshot()` returns the endpoint's versioned semantic tree. `ui.getNode()` -polls for one exact match and fails with `UiNodeAmbiguousError` when more than -one node matches. Semantic snapshots and identity-checked semantic clicks are -optional during negotiation, so older OpenCode checkouts retain ordinary UI -control while unsupported semantic operations fail locally with -`UiCapabilityError`. - -```ts -const option = - yield * - ui.getNode({ - role: "option", - label: "Allow once", - selected: true, - }) -yield * ui.click(option) -``` - -### Additional TUI - -```ts -yield * server.launch() -const alice = yield * tuis.launch("alice") -const bob = yield * tuis.launch("bob") - -yield * alice.ui.submit("Hello from Alice") -yield * bob.ui.screenshot("bob-view") -``` - -### TUI configuration - -```ts -export default defineScript({ - tui: { - viewport: { - cols: 118, - rows: 34, - }, - }, - run: ({ ui }) => ui.screenshot("home").pipe(Effect.asVoid), -}) -``` - -Script cancellation uses Effect interruption. Interrupting the script or an -operation's fiber interrupts in-flight work and runs its scoped finalizers; -there is no `AbortSignal`, Promise cancellation convention, or compatibility -shim. - -## Settled interface - -- `OpenCodeDriver.use(run)` and `use(options, run)` are the safe top-level brackets and perform typed settlement. -- `OpenCodeDriver.make(options)` is the primary scoped constructor. -- `opencode` is the generated OpenCode SDK client. -- Programs that call `make` directly call terminal `driver.settle()` before leaving the scope. -- Direct library programs run the same Effect without any export convention. -- The `tui` section configures one primary TUI. -- The primary TUI's UI is exposed as `ui` and `oc.ui`. -- The common case destructures `{ ui, llm }`. -- `oc.tuis.launch(options?)` creates an additional TUI with a generated identity. -- `oc.tuis.launch(name, options?)` creates a TUI with a stable identity. -- Additional TUIs expose their UI as `tui.ui`. -- Drivers and scripts share the same `Tui`, `Tuis`, `Ui`, and option types. -- `Llm` exposes pure constructors over manually composed Effect Schemas. -- Raw schema-compatible LLM output objects remain accepted. -- One `llm.queue(...)` call describes one future model response. diff --git a/packages/drive/docs/open-code-driver-architecture.md b/packages/drive/docs/open-code-driver-architecture.md deleted file mode 100644 index 919e2abcc38..00000000000 --- a/packages/drive/docs/open-code-driver-architecture.md +++ /dev/null @@ -1,228 +0,0 @@ -# OpenCode Driver Architecture - -This guide describes the current Effect-native architecture. The public call -sites are documented in [OpenCode Driver API](./open-code-driver-api.md). - -## Domain Model - -`OpenCodeDriver` composes these resources: - -```text -OpenCodeDriver - project isolated files and configuration - opencode generated OpenCode SDK client - tui primary frontend process - tuis additional frontend process factory - ui convenience alias for tui.ui - llm shared simulated-model control - tools runtime control for static adapters and arbitrary tools -``` - -The names distinguish the two kinds of client involved: - -- `opencode` is the generated `@opencode-ai/client` SDK value. -- `Tui` is a launched OpenCode frontend process with `ui`, `close`, and an - optional `recording`. -- `Tuis` launches and supervises additional frontend processes connected to - the same server. -- `tools.control` accepts independently controlled invocations for adapters - declared before OpenCode starts. -- `tools.attach` and `tools.take` control arbitrary native tools through the - canonical provider-backed lifecycle. -- Transport-level JSON-RPC clients remain private implementation details. - -`defineScript` consumes these exact capabilities. It adds a branded module -contract, restart behavior, filesystem access, and explicit manual launch. It -does not define another UI, TUI, LLM, or project vocabulary. - -## Ownership - -```text -Effect Scope - OpenCodeProject - artifact root - isolated project files - OpenCodeInstance - server process - TUI processes - launch descriptors and logs - CLI script ToolController - controlled invocation exchanges - OpenCodeServer - backend simulation connection - reconnecting tool-only backend connection - LLM controller - dynamic ToolProducer - generated OpenCode SDK connection - TUI supervisor - primary TUI scope - additional TUI scopes - Library ToolController - controlled invocation exchanges -``` - -Library drivers create their ToolController before project preparation and -pass that controller into `OpenCodeInstance`. CLI scripts create the controller -inside `OpenCodeInstance`. Prepared drivers and script contexts combine the -instance's static controller with the server's dynamic producer. The static -controller that wrote plugin configuration remains the one exposed through -`tools.control`. - -`OpenCodeDriver.make(options)` requires `Scope.Scope`. It returns once the -server, generated SDK client, primary TUI, and simulation connections are -ready. `OpenCodeDriver.use` supplies that scope and performs terminal -settlement even when the user program fails. - -## Settlement - -Settlement is one shared terminal operation. It runs in this order: - -1. Validate that queued LLM work was consumed. -2. Validate that native dynamic-tool invocations were settled. -3. Shut down the LLM controller. -4. Finish active recording timelines. -5. Close all TUI scopes and processes. -6. Export completed recordings. -7. Decode the schema-validated `RunReport`. - -`driver.settle()` is shared and idempotent. Once settlement starts, `tuis` -rejects new launches and `llm` rejects new responses. `OpenCodeDriver.use` -combines a user-program failure with a settlement failure rather than hiding -either cause. - -## Tool Control Lifecycle - -`ToolController` installs only statically declared or callback-registered -adapters into OpenCode's project configuration. Each runtime-controlled tool -owns one exchange that matches incoming requests to exact-ID or FIFO waiters. -Each accepted call owns a terminal Deferred, an interruption Deferred, and a -one-permit Semaphore that serializes progress with terminal commitment. - -Controller scope release closes blocked waiters, marks unresolved calls -interrupted, aborts active HTTP transports, and waits for handler finalizers. -Terminal commitment uses a synchronous first-writer-wins Deferred completion; -Drive guarantees exactly-once acceptance inside the controller, not delivery -across a transport disconnect. - -`ToolProducer` owns a separate backend socket because LLM chunks are not -idempotent and an LLM socket closure is terminal to `LlmController`. Dynamic -tool progress and terminal RPCs are idempotent by producer invocation ID and -sequence, so the tool-only connection may reconnect and replay pending -invocations safely. One ordered event stream preserves invocation-before- -cancellation order. The desired registration set survives reconnects and -manual server relaunches; invocation records are scoped to one server -generation because producer IDs may be reused by a new process. -Settlement first clears the dynamic registration set on OpenCode, then drains -the ordered local event stream before checking for unresolved invocations. The -clear acts as the server-side barrier that prevents a native invocation from -appearing after a successful settlement snapshot. Settlement is terminal for -dynamic attachment. Reconnects remain available while the clear is in flight; -the final connection gate drains any reconnect that landed during settlement -before preventing further backend creation. If the server generation has -already ended, its teardown has cleared the generation-scoped invocation -records, so settlement does not wait for a replacement backend. - -## TUI Lifecycle - -`Tuis.launch(options)` generates an internal identity. `Tuis.launch(name, -options)` uses a stable caller-supplied identity. Both return the same value: - -```ts -interface Tui { - readonly ui: Ui - readonly close: () => Effect.Effect - readonly recording?: Recording -} -``` - -Each TUI owns one frontend process, one negotiated UI connection, and -optionally one recording timeline. Closing a named TUI releases its identity -for reuse. An unexpected process exit fails the owning driver or script. - -The primary TUI is not a special interface. `driver.tui` and values returned -by `driver.tuis` have exactly the same `Tui` type. `driver.ui` is only -`driver.tui.ui` exposed for the common single-TUI call site. - -## OpenCode SDK - -The server process writes an authenticated service registration into its -isolated state directory. `driver/opencode.ts` discovers that registration and -constructs the generated Effect SDK client with the project directory header. -Passwords and registration paths remain internal. The resulting value is -exposed as `driver.opencode` and `ScriptContext.opencode`. - -## Canonical Protocol - -`@opencode-ai/protocol/simulation` contains the single schema definition for OpenCode's -handshake, frontend, and backend simulation messages. `client/protocol.ts` -publishes those namespaces without redefining their data types. - -```text -Frontend protocol schemas - -> driver/ui.ts Effect Ui capability - -> driver/client.ts Tui and Tuis lifecycle - -> driver/index.ts OpenCodeDriver aggregate - -> script/types.ts exact capability reuse -``` - -CLI `--command.ui.*` names are exhaustively checked against -`Frontend.Capabilities`. The Promise transport under `opencode-drive/client` -is separate from the Effect programmatic model but consumes the same protocol -schemas. - -## Transport Seam - -`SimulationConnector` owns WebSocket acquisition, handshake negotiation, -schema validation, request correlation, interruption, and connection failure. -The driver receives the connector through an Effect service and does not -expose it in userland. - -The UI connection is request-response JSON-RPC. The LLM backend additionally -receives unsolicited `llm.request` notifications. The tool-only backend keeps -ordered `tool.invocation` and `tool.cancel` notifications on one validated -stream and does not call `llm.attach`. - -## Project Setup - -Neutral project contracts live in `src/project.ts` so neither the driver nor -scripts own the shared vocabulary: - -```text -Project -Setup -SetupContext -ProjectFileSystem -OpenCodeConfig -OpenCodeTuiConfig -``` - -Configuration is applied in this order: - -1. Write declared project files. -2. Read fixture `opencode.jsonc` and `tui.jsonc` values. -3. Deep-merge `config` and `tuiConfig`; arrays replace existing arrays. -4. Run Effect-only `setup`, which may mutate both merged objects. -5. Write normalized JSON and optionally commit the Git baseline. - -## Dependency Direction - -```text -project -> Effect and Schema -simulation -> canonical protocol and Effect RPC -driver -> project + simulation + instance + recording -script -> project + driver capabilities -cli -> script + driver + Promise transport -``` - -Lower-level modules do not import the package root or the driver/script -barrels. `script/types.ts` may reference driver capabilities; driver modules -must not reference script types. - -## Public Entry Points - -- `opencode-drive`: Effect driver, scripts, project contracts, LLM constructors. -- `opencode-drive/driver`: complete Effect driver namespace. -- `opencode-drive/script`: `defineScript` and script contracts. -- `opencode-drive/client`: Promise simulation transport. -- `opencode-drive/llm`: pure LLM output constructors and schemas. -- `opencode-drive/recording`: recording decode, replay, and export utilities. diff --git a/packages/drive/examples/multiple-clients.ts b/packages/drive/examples/multiple-clients.ts deleted file mode 100644 index 6e898996977..00000000000 --- a/packages/drive/examples/multiple-clients.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { Effect, Stream } from "effect" -import { defineScript, Llm } from "opencode-drive" - -export default defineScript({ - launch: "manual", - - run: ({ server, tuis, llm }) => - Effect.gen(function* () { - yield* server.launch() - - yield* llm.serve((_request, index) => Stream.make(Llm.text(`Response for request ${index + 1}`))) - - const [alice, bob] = yield* Effect.all( - [tuis.launch("alice", { recording: true }), tuis.launch("bob", { recording: true })], - { concurrency: "unbounded" }, - ) - - yield* Effect.all([alice.ui.submit("Reply to Alice"), bob.ui.submit("Reply to Bob")], { - concurrency: "unbounded", - }) - yield* Effect.all( - [alice.ui.screenshot("multiple-clients-alice-submitted"), bob.ui.screenshot("multiple-clients-bob-submitted")], - { concurrency: "unbounded" }, - ) - yield* Effect.all( - [ - alice.ui.waitFor("Response for request", { timeout: 30_000 }), - bob.ui.waitFor("Response for request", { timeout: 30_000 }), - ], - { concurrency: "unbounded" }, - ) - - yield* Effect.all( - [alice.ui.screenshot("multiple-clients-alice-complete"), bob.ui.screenshot("multiple-clients-bob-complete")], - { concurrency: "unbounded" }, - ) - - yield* server.kill() - yield* Effect.sleep(500) - yield* Effect.all( - [ - alice.ui.screenshot("multiple-clients-alice-server-stopped"), - bob.ui.screenshot("multiple-clients-bob-server-stopped"), - ], - { concurrency: "unbounded" }, - ) - - yield* server.launch() - yield* Effect.sleep(1000) - yield* Effect.all( - [ - alice.ui.screenshot("multiple-clients-alice-server-relaunched"), - bob.ui.screenshot("multiple-clients-bob-server-relaunched"), - ], - { concurrency: "unbounded" }, - ) - }), -}) diff --git a/packages/drive/examples/serve.ts b/packages/drive/examples/serve.ts deleted file mode 100644 index 9cc8aafe929..00000000000 --- a/packages/drive/examples/serve.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { Effect, Stream } from "effect" -import { defineScript, Llm } from "opencode-drive" - -export default defineScript({ - setup: ({ fs }) => - fs.writeFile( - "src/greeting.ts", - ["export function greeting(name: string) {", " return `Welcome, ${name}!`", "}", ""].join("\n"), - ), - - run: ({ llm, ui }) => - Effect.gen(function* () { - let turn = 0 - - yield* llm.title(() => Effect.succeed("Understanding the greeting")) - yield* llm.serve(() => { - if (turn++ === 0) - return Stream.make( - Llm.reasoning("I should read the implementation before explaining it."), - Llm.toolCall({ - index: 0, - id: "call_read_greeting", - name: "read", - input: { filePath: "src/greeting.ts" }, - }), - Llm.finish("tool-calls"), - ) - - return Stream.make( - Llm.text("The function accepts a name, "), - Llm.pause(150), - Llm.text("places it into a welcome message, "), - Llm.pause(150), - Llm.text("and adds an exclamation mark."), - Llm.pause(150), - Llm.finish("stop"), - ) - }) - - yield* ui.submit("Read src/greeting.ts and explain what it does.") - yield* ui.waitFor("adds an exclamation mark") - }), -}) diff --git a/packages/drive/examples/simple.ts b/packages/drive/examples/simple.ts deleted file mode 100644 index 085d3243492..00000000000 --- a/packages/drive/examples/simple.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { Effect } from "effect" -import { defineScript, Llm } from "opencode-drive" - -export default defineScript({ - setup: ({ fs }) => fs.writeFile("src/message.ts", 'export const message = "Hello from OpenCode Drive"\n'), - - run: ({ llm, ui }) => - Effect.gen(function* () { - yield* ui.waitFor((state) => state.focused.editor) - const editor = yield* ui.getElement({ editor: true, focused: true }) - yield* ui.focus(editor) - - yield* ui.submit("What does src/message.ts export?") - yield* llm.send( - Llm.reasoning("I should inspect the small source file first.", { - delay: 5, - chunkSize: 10, - }), - Llm.pause(100), - Llm.text('src/message.ts exports `message` with the value "Hello from OpenCode Drive".', { - delay: 10, - chunkSize: 12, - }), - ) - yield* llm.send(Llm.text("Message export")) - - yield* ui.waitFor("Hello from OpenCode Drive") - if (!(yield* ui.matches("OpenCode Drive"))) throw new Error("the expected response was not visible") - - yield* ui.screenshot("simple-response") - }), -}) diff --git a/packages/drive/examples/viewport-resize.ts b/packages/drive/examples/viewport-resize.ts deleted file mode 100644 index d2c5522291c..00000000000 --- a/packages/drive/examples/viewport-resize.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { Effect } from "effect" -import { defineScript, Llm } from "opencode-drive" - -export default defineScript({ - tui: { viewport: { cols: 120, rows: 36 } }, - - setup: ({ fs }) => fs.writeFile("src/viewport.ts", `export const viewportSequence = ["120x36", "80x24", "50x18"]\n`), - - run: ({ ui, llm }) => - Effect.gen(function* () { - yield* ui.submit("Show a compact status report for the viewport resize demo.") - yield* llm.send( - Llm.text( - "Viewport demo: starting wide at 120 columns by 36 rows. The file src/viewport.ts lists the planned sequence. This first response should have plenty of horizontal room before the terminal narrows.", - ), - ) - yield* Effect.sleep(900) - - yield* ui.resize({ cols: 80, rows: 24 }) - yield* Effect.sleep(900) - - yield* ui.submit("Now describe the medium viewport.") - yield* llm.send( - Llm.text( - "Medium viewport: resized to 80 columns by 24 rows. Lines should wrap sooner, the composer has less vertical breathing room, and the conversation should reflow without losing focus.", - ), - ) - yield* ui.waitFor("resized to 80 columns") - yield* Effect.sleep(900) - - yield* ui.resize({ cols: 50, rows: 18 }) - yield* Effect.sleep(900) - - yield* ui.submit("Finish with the narrow viewport summary.") - yield* llm.send( - Llm.text( - "Narrow viewport: now 50 columns by 18 rows. This final state is intentionally cramped so modal, wrapping, and footer behavior are easy to inspect in the recording.", - ), - ) - yield* ui.waitFor("now 50 columns") - yield* Effect.sleep(1200) - }), -}) diff --git a/packages/drive/package.json b/packages/drive/package.json deleted file mode 100644 index c121f775acb..00000000000 --- a/packages/drive/package.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/package.json", - "name": "opencode-drive", - "version": "1.4.3", - "private": true, - "description": "Drive real and simulated OpenCode instances", - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/anomalyco/opencode.git", - "directory": "packages/drive" - }, - "homepage": "https://github.com/anomalyco/opencode/tree/v2/packages/drive#readme", - "bugs": "https://github.com/anomalyco/opencode/issues", - "type": "module", - "packageManager": "bun@1.3.14", - "engines": { - "bun": ">=1.3.14" - }, - "bin": { - "opencode-drive": "bin/opencode-drive" - }, - "exports": { - ".": "./src/index.ts", - "./client": "./src/client/index.ts", - "./driver": "./src/driver/index.ts", - "./frame": "./src/frame/index.ts", - "./llm": "./src/llm/index.ts", - "./recording": "./src/recording/index.ts", - "./script": "./src/script/index.ts" - }, - "files": [ - "assets/fonts", - "bin/opencode-drive", - "docs", - "src/cli", - "src/client", - "src/driver", - "src/frame", - "src/instance", - "src/llm", - "src/log.ts", - "src/project.ts", - "src/recording", - "src/script", - "src/simulation", - "src/tool", - "src/index.ts", - "LICENSE", - "README.md" - ], - "scripts": { - "drive": "bun run src/cli/index.ts", - "lint": "cd ../.. && bun run lint -- packages/drive/src", - "test": "bun run test:effect && bun run test:cli", - "test:effect": "bun run --bun vitest run", - "test:cli": "bun test test/cli/integration.test.ts", - "typecheck": "tsgo --noEmit", - "check": "bun run lint && bun run typecheck", - "release:validate": "bun run check && bun run test && bun pm pack --dry-run" - }, - "dependencies": { - "@effect/platform-node": "catalog:", - "@napi-rs/canvas": "1.0.2", - "@opencode-ai/client": "workspace:*", - "@opencode-ai/protocol": "workspace:*", - "@types/bun": "catalog:", - "@typescript/native-preview": "catalog:", - "@wterm/core": "0.3.0", - "@wterm/ghostty": "0.3.0", - "effect": "catalog:" - }, - "devDependencies": { - "@effect/vitest": "4.0.0-beta.101", - "@tsconfig/bun": "catalog:", - "oxlint": "1.60.0", - "typescript": "catalog:", - "vitest": "4.1.10" - } -} diff --git a/packages/drive/src/cli/check.ts b/packages/drive/src/cli/check.ts deleted file mode 100644 index ec46107b388..00000000000 --- a/packages/drive/src/cli/check.ts +++ /dev/null @@ -1,74 +0,0 @@ -import { rm } from "node:fs/promises" -import { initializeInstance } from "../instance/instance.js" -import { checkScript } from "../script/tooling.js" - -export async function check(file: string) { - const artifacts = await initializeInstance() - try { - try { - await checkScript(artifacts, file) - } catch (error) { - const source = await Bun.file(file) - .slice(0, 256 * 1024) - .text() - .catch(() => "") - const hint = effectScriptHint(source, message(error)) - if (hint !== undefined) throw new Error(`${message(error)}\n\n${hint}`, { cause: error }) - throw error - } - } finally { - await rm(artifacts, { recursive: true, force: true }) - } -} - -export function effectScriptHint(source: string, diagnostics: string) { - if (!/\bPromise(?:Like)? state.focused.editor) - -Use: - ui.waitFor((state) => Effect.succeed(state.focused.editor))` - if (/\bsetup\s*:|\basync\s+setup\s*\(/.test(relevant)) - return `${heading} - -Instead of: - setup: async ({ fs }) => { - await fs.writeFile("src/example.ts", "export {}") - } - -Use: - setup: ({ fs }) => fs.writeFile("src/example.ts", "export {}")` - if (/\brun\s*:|\basync\s+run\s*\(/.test(relevant)) - return `${heading} - -Instead of: - run: async ({ ui }) => { - await ui.submit("Hello") - } - -Use: - run: ({ ui }) => - Effect.gen(function* () { - yield* ui.submit("Hello") - })` - return undefined -} - -const heading = "OpenCode Drive scripts are Effect-only. Promise callbacks are not supported." - -function diagnosticSource(source: string, diagnostics: string) { - const lines = source.split("\n") - const numbers = [...diagnostics.matchAll(/(?::(\d+):\d+|\((\d+),\d+\))/g)] - .map((match) => Number(match[1] ?? match[2])) - .filter((line) => Number.isInteger(line) && line > 0) - return numbers.length === 0 ? source : numbers.map((line) => lines[line - 1] ?? "").join("\n") -} - -function message(error: unknown) { - return error instanceof Error ? error.message : String(error) -} diff --git a/packages/drive/src/cli/commands.ts b/packages/drive/src/cli/commands.ts deleted file mode 100644 index 6d13dd9a571..00000000000 --- a/packages/drive/src/cli/commands.ts +++ /dev/null @@ -1,220 +0,0 @@ -import * as Cause from "effect/Cause" -import * as Effect from "effect/Effect" -import * as Exit from "effect/Exit" -import * as Schema from "effect/Schema" -import { Frontend } from "../client/protocol.js" -import { recordLog } from "../log.js" -import * as SimulationConnector from "../simulation/connector.js" -import * as OpenCodeUi from "../driver/ui.js" -import type { DriveCommand } from "./types.js" - -export const commandInfo = { - "ui.type": { value: true, description: "Type text using JSON params" }, - "ui.press": { value: true, description: "Press a key using JSON params" }, - "ui.enter": { value: false, description: "Press Enter" }, - "ui.arrow": { - value: true, - description: "Press an arrow key using JSON params", - }, - "ui.focus": { - value: true, - description: "Focus an element using JSON params", - }, - "ui.click": { value: true, description: "Click using JSON params" }, - "ui.resize": { - value: true, - description: "Resize terminal viewport using JSON params", - }, - "ui.screenshot": { - value: "optional", - description: "Take a screenshot with optional JSON params and return its path", - }, - "ui.capture": { - value: false, - description: "Capture the terminal frame as JSON", - }, - "ui.state": { - value: false, - description: "Return focus, elements, and available UI actions", - }, - "ui.snapshot": { - value: false, - description: "Return the semantic UI tree as JSON", - }, - "ui.matches": { - value: true, - description: "Check for literal screen text using JSON params", - }, - "ui.recording.finish": { - value: false, - description: "Finish recording and return the timeline path", - }, -} as const satisfies Record< - DriveCommand["operation"], - { readonly value: boolean | "optional"; readonly description: string } -> - -type CommandName = DriveCommand["operation"] - -export function isCommandName(operation: string): operation is CommandName { - return Object.hasOwn(commandInfo, operation) -} - -export function commandAcceptsValue(operation: CommandName) { - return commandInfo[operation].value -} - -export function commandNames() { - return Object.keys(commandInfo).sort() -} - -export class SimulationError extends Error { - constructor( - message: string, - readonly method?: string, - ) { - super(message) - this.name = "SimulationError" - } -} - -export class CommandBatchError extends Error { - constructor( - readonly results: ReadonlyArray<{ - readonly command: string - readonly result: unknown - }>, - readonly reason: unknown, - ) { - super(reason instanceof Error ? reason.message : String(reason)) - this.name = "CommandBatchError" - } -} - -const callTimeout = 30_000 -const ScreenshotParams = Schema.Struct({ name: Schema.optional(Schema.String) }) - -export async function executeCommands( - endpoint: string, - commands: ReadonlyArray, - options?: OpenCodeUi.Options, -) { - const exit = await Effect.runPromiseExit(Effect.scoped(executeBatch(endpoint, commands, options))) - if (Exit.isSuccess(exit)) return exit.value - const reason = Cause.squash(exit.cause) - throw reason instanceof CommandBatchError ? reason : new CommandBatchError([], reason) -} - -const executeBatch = Effect.fn("DriveCli.executeBatch")(function* ( - endpoint: string, - commands: ReadonlyArray, - options?: OpenCodeUi.Options, -) { - const connection = yield* SimulationConnector.ui(endpoint, { - connectTimeout: callTimeout, - }).pipe( - Effect.mapError( - (cause) => new SimulationError(cause instanceof Error ? cause.message : `cannot connect to ${endpoint}`), - ), - ) - const results: Array<{ readonly command: string; readonly result: unknown }> = [] - for (const command of commands) { - const result = yield* execute(connection, command, options).pipe( - Effect.mapError((error) => new CommandBatchError(results, error)), - ) - results.push({ command: command.operation, result }) - } - return { results } -}) - -const execute = ( - connection: SimulationConnector.UiConnection, - command: DriveCommand, - options?: OpenCodeUi.Options, -): Effect.Effect => - Effect.suspend(() => { - recordLog("INFO", `ui command ${command.operation} params=${command.value ?? "undefined"}`) - if (command.operation === "ui.screenshot") { - const params = Schema.decodeUnknownSync(ScreenshotParams)( - command.value === undefined ? {} : JSON.parse(command.value), - { onExcessProperty: "error" }, - ) - return OpenCodeUi.make(connection, options).screenshot(params.name) - } - return dispatch(connection, decodeCommand(command)) - }).pipe( - Effect.timeoutOrElse({ - duration: callTimeout, - orElse: () => Effect.fail(new SimulationError(`timed out after ${callTimeout}ms`, command.operation)), - }), - Effect.mapError((cause) => - cause instanceof SimulationError - ? cause - : new SimulationError(cause instanceof Error ? cause.message : String(cause), command.operation), - ), - Effect.tap(() => Effect.sync(() => recordLog("INFO", `ui command ${command.operation} completed`))), - Effect.tapError((error) => - Effect.sync(() => recordLog("ERROR", `ui command ${command.operation} failed: ${error.message}`)), - ), - ) - -function decodeCommand(command: DriveCommand): Frontend.Request { - if (command.value === undefined && commandInfo[command.operation].value === true) - throw new Error(`${command.operation} requires a value`) - const operation = command.operation - if (operation === "ui.screenshot") throw new Error("ui.screenshot must be decoded by Drive") - return Frontend.decodeRequest( - { - jsonrpc: "2.0", - method: operation, - ...(command.value === undefined ? {} : { params: JSON.parse(command.value) }), - }, - { onExcessProperty: "error" }, - ) -} - -function dispatch( - connection: SimulationConnector.UiConnection, - request: Frontend.Request, -): Effect.Effect { - if ( - request.method === "ui.snapshot" && - !SimulationConnector.supportsCapability(connection.compatibility, "ui.snapshot") - ) - return Effect.fail(new SimulationError("ui.snapshot is not available on this OpenCode endpoint", request.method)) - if ( - request.method === "ui.click" && - request.params.semantic !== undefined && - !SimulationConnector.supportsCapability(connection.compatibility, "ui.click.semantic") - ) - return Effect.fail( - new SimulationError("semantic ui.click is not available on this OpenCode endpoint", request.method), - ) - switch (request.method) { - case "ui.type": - return connection.rpc["ui.type"](request.params) - case "ui.press": - return connection.rpc["ui.press"](request.params) - case "ui.enter": - return connection.rpc["ui.enter"]() - case "ui.arrow": - return connection.rpc["ui.arrow"](request.params) - case "ui.focus": - return connection.rpc["ui.focus"](request.params) - case "ui.click": - return connection.rpc["ui.click"](request.params) - case "ui.resize": - return connection.rpc["ui.resize"](request.params) - case "ui.capture": - return connection.rpc["ui.capture"]() - case "ui.state": - return connection.rpc["ui.state"]() - case "ui.snapshot": - return connection.rpc["ui.snapshot"]() - case "ui.matches": - return connection.rpc["ui.matches"](request.params) - case "ui.recording.finish": - return connection.rpc["ui.recording.finish"]() - } - throw new Error(`unsupported UI method ${request.method}`) -} diff --git a/packages/drive/src/cli/dir.ts b/packages/drive/src/cli/dir.ts deleted file mode 100644 index 3485edc4f01..00000000000 --- a/packages/drive/src/cli/dir.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { resolveInstance } from "../instance/registry.js" - -export async function dir(name?: string) { - const manifest = await resolveInstance(name) - console.log(manifest.artifacts) -} diff --git a/packages/drive/src/cli/index.ts b/packages/drive/src/cli/index.ts deleted file mode 100644 index 8e8385e8234..00000000000 --- a/packages/drive/src/cli/index.ts +++ /dev/null @@ -1,257 +0,0 @@ -#!/usr/bin/env bun -import * as NodeRuntime from "@effect/platform-node/NodeRuntime" -import * as NodeServices from "@effect/platform-node/NodeServices" -import { Effect, Option } from "effect" -import { Argument, Command, Flag } from "effect/unstable/cli" -import packageJson from "../../package.json" with { type: "json" } -import { extractCommands } from "./parse.js" -import { check } from "./check.js" -import { dir } from "./dir.js" -import { init } from "./init.js" -import { list } from "./list.js" -import { prune } from "./prune.js" -import { restart } from "./restart.js" -import { runProgram } from "./run.js" -import { send } from "./send.js" -import { initScript } from "./script-init.js" -import { start } from "./start.js" -import { stop } from "./stop.js" -import { logError } from "../log.js" -import type { DriveCommand, SendOptions, StartOptions } from "./types.js" - -const extracted = extract() -const initName = Flag.string("name").pipe(Flag.withDescription("Instance name")) -const startName = Flag.string("name").pipe( - Flag.optional, - Flag.withDescription("Instance name (optional with --visible)"), -) -const name = Flag.string("name").pipe( - Flag.optional, - Flag.withDescription("Instance name (defaults to the visible instance)"), -) -const pruneName = Flag.string("name").pipe(Flag.optional, Flag.withDescription("Instance name")) - -const initCommand = Command.make("init", { name: initName }, (config) => execute(() => init(config.name))).pipe( - Command.withDescription("Initialize an instance without launching OpenCode"), - Command.withExamples([ - { - command: "opencode-drive init --name demo", - description: "Create an instance and print its artifact directory", - }, - ]), -) - -const checkCommand = Command.make("check", { file: Argument.string("script") }, (config) => - execute(() => check(config.file)), -).pipe( - Command.withDescription("Type-check an OpenCode Drive script"), - Command.withExamples([ - { - command: "opencode-drive check ./drive.ts", - description: "Type-check a script with the bundled script API", - }, - ]), -) - -const scriptInitCommand = Command.make("init", { file: Argument.string("file") }, (config) => - execute(() => initScript(config.file)), -).pipe( - Command.withDescription("Create an Effect-native OpenCode Drive script"), - Command.withExamples([ - { - command: "opencode-drive script init ./drive.ts", - description: "Create a type-checkable script without overwriting existing files", - }, - ]), -) - -const scriptCommand = Command.make("script").pipe( - Command.withDescription("Create and manage OpenCode Drive scripts"), - Command.withSubcommands([scriptInitCommand]), -) - -const runCommand = Command.make("run", { module: Argument.string("module") }, (config) => - executeEffect( - Effect.try({ - try: () => toRunModule(config.module, extracted.commands, extracted.app), - catch: (error) => error, - }).pipe(Effect.flatMap(runProgram), Effect.asVoid), - ), -).pipe( - Command.withDescription("Type-check and run a fully provided Effect program"), - Command.withExamples([ - { - command: "opencode-drive run ./drive.ts", - description: "Run a default-exported Effect program", - }, - ]), -) - -const startCommand = Command.make( - "start", - { - name: startName, - daemon: Flag.boolean("daemon").pipe(Flag.withHidden, Flag.withDescription("Run as detached instance owner")), - script: Flag.string("script").pipe( - Flag.optional, - Flag.withDescription("JavaScript or TypeScript automation module"), - ), - visible: Flag.boolean("visible").pipe(Flag.withDescription("Show OpenCode in the terminal")), - record: Flag.boolean("record").pipe( - Flag.withDescription("Record the complete headless session and export it on stop"), - ), - dev: Flag.string("dev").pipe(Flag.optional, Flag.withDescription("Path to an OpenCode development checkout")), - }, - (config) => - executeEffect( - Effect.try({ - try: () => toStartOptions(config, extracted.commands, extracted.app), - catch: (error) => error, - }).pipe(Effect.flatMap(start)), - ), -).pipe( - Command.withDescription("Launch a local simulated OpenCode instance"), - Command.withExamples([ - { - command: "opencode-drive start --name demo", - description: "Launch headless OpenCode on the default ports", - }, - { - command: "opencode-drive start --visible", - description: "Launch visible OpenCode on the default ports", - }, - { - command: "opencode-drive start --name demo --script ./drive.ts", - description: "Launch headless OpenCode and run a script", - }, - ]), -) - -const sendCommand = Command.make("send", { name }, (config) => - execute(() => send(toSendOptions(Option.getOrUndefined(config.name), extracted.commands, extracted.app))), -).pipe( - Command.withDescription("Send UI commands to OpenCode on the default port"), - Command.withExamples([ - { - command: 'opencode-drive send --command.ui.type \'{"text":"hello"}\' --command.ui.state', - description: "Execute an ordered UI command batch", - }, - ]), -) - -const restartCommand = Command.make("restart", { name }, (config) => - execute(() => restart(Option.getOrUndefined(config.name))), -).pipe(Command.withDescription("Restart a named OpenCode instance and rerun its script")) - -const stopCommand = Command.make("stop", { name }, (config) => - execute(() => stop(Option.getOrUndefined(config.name))), -).pipe(Command.withDescription("Stop a named OpenCode instance")) - -const dirCommand = Command.make("dir", { name }, (config) => - execute(() => dir(Option.getOrUndefined(config.name))), -).pipe(Command.withDescription("Print the artifact directory for a named OpenCode instance")) - -const listCommand = Command.make("list", {}, () => execute(list)).pipe( - Command.withDescription("List active OpenCode instances"), -) - -const pruneCommand = Command.make( - "prune", - { - name: pruneName, - force: Flag.boolean("force").pipe( - Flag.withDescription("Delete all matching artifact directories, including active ones"), - ), - }, - (config) => execute(() => prune({ name: Option.getOrUndefined(config.name), force: config.force })), -).pipe(Command.withDescription("Delete artifact directories for inactive OpenCode instances")) - -const root = Command.make("opencode-drive").pipe( - Command.withDescription("Drive real and simulated OpenCode instances"), - Command.withSubcommands([ - initCommand, - scriptCommand, - checkCommand, - runCommand, - startCommand, - sendCommand, - listCommand, - pruneCommand, - dirCommand, - restartCommand, - stopCommand, - ]), -) - -Command.runWith(root, { version: packageJson.version })(extracted.args).pipe( - Effect.provide(NodeServices.layer), - NodeRuntime.runMain, -) - -function toStartOptions( - config: { - readonly script: Option.Option - readonly name: Option.Option - readonly daemon: boolean - readonly visible: boolean - readonly record: boolean - readonly dev: Option.Option - }, - commands: ReadonlyArray, - app: ReadonlyArray, -): StartOptions { - if (commands.length > 0) throw new Error("start does not accept command flags; use send or --script") - const name = Option.getOrUndefined(config.name) - if (name === undefined && !config.visible) throw new Error("start requires --name unless --visible is passed") - const options = { - kind: "start" as const, - name: name ?? `visible-${process.pid}`, - daemon: config.daemon, - script: Option.getOrUndefined(config.script), - visible: config.visible, - record: config.record, - dev: Option.getOrUndefined(config.dev), - command: app, - } - if (options.dev !== undefined && app.length > 0) throw new Error("--dev cannot be combined with a command after --") - return options -} - -function toRunModule(module: string, commands: ReadonlyArray, app: ReadonlyArray) { - if (commands.length > 0) throw new Error("run does not accept command flags") - if (app.length > 0) throw new Error("run does not accept arguments after --") - return module -} - -function toSendOptions( - name: string | undefined, - commands: ReadonlyArray, - app: ReadonlyArray, -): SendOptions { - if (app.length > 0) throw new Error("send does not accept a command after --") - return { kind: "send", name, commands } -} - -function execute(task: () => Promise) { - return executeEffect(Effect.tryPromise({ try: task, catch: (error) => error })) -} - -function executeEffect(task: Effect.Effect) { - return task.pipe( - Effect.catch((error) => - Effect.sync(() => { - logError(error instanceof Error ? error.message : String(error)) - process.exitCode = 1 - }), - ), - ) -} - -function extract() { - try { - return extractCommands(process.argv.slice(2)) - } catch (error) { - logError(error instanceof Error ? error.message : String(error)) - return process.exit(1) - } -} diff --git a/packages/drive/src/cli/init.ts b/packages/drive/src/cli/init.ts deleted file mode 100644 index 49d7a270f6e..00000000000 --- a/packages/drive/src/cli/init.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { initializeInstance } from "../instance/instance.js" -import { initializeManifest } from "../instance/registry.js" -import { configureLogFile, logSuccess } from "../log.js" - -export async function init(name: string) { - const manifest = await initializeManifest(name, process.cwd(), () => initializeInstance(name)) - configureLogFile(manifest.artifacts) - logSuccess(`initialized ${name}`) - console.log(manifest.artifacts) -} diff --git a/packages/drive/src/cli/list.ts b/packages/drive/src/cli/list.ts deleted file mode 100644 index c791f9ec3f5..00000000000 --- a/packages/drive/src/cli/list.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { listManifests, manifestPath } from "../instance/registry.js" - -export async function list() { - const instances = await listManifests() - console.log(instances.map((instance) => `${instance.name}: ${manifestPath(instance.name)}`).join("\n")) -} diff --git a/packages/drive/src/cli/mock-backend.ts b/packages/drive/src/cli/mock-backend.ts deleted file mode 100644 index 60a25ab0c32..00000000000 --- a/packages/drive/src/cli/mock-backend.ts +++ /dev/null @@ -1,72 +0,0 @@ -import * as Effect from "effect/Effect" -import * as Exit from "effect/Exit" -import * as Scope from "effect/Scope" -import * as Stream from "effect/Stream" -import type { Backend } from "../client/protocol.js" -import { logError } from "../log.js" -import * as SimulationConnector from "../simulation/connector.js" -import { generateResponse } from "./response-generator.js" -import type { createResponseSettings } from "./response-generator.js" - -const connectTimeout = 30_000 - -export async function connectMockBackend(endpoint: string, responses: ReturnType) { - const scope = await Effect.runPromise(Scope.make()) - const connect = Effect.gen(function* () { - const backend = yield* SimulationConnector.backend(endpoint, { - connectTimeout, - requestTimeout: connectTimeout, - attach: false, - }) - yield* backend.requests.pipe( - Stream.runForEach((request) => - respond(backend, request, responses).pipe( - Effect.matchCauseEffect({ - onFailure: (cause) => Effect.sync(() => logError(String(cause))), - onSuccess: () => Effect.void, - }), - Effect.forkIn(scope), - ), - ), - Effect.forkIn(scope), - ) - yield* backend.attach() - }) - try { - await Effect.runPromise(connect.pipe(Scope.provide(scope))) - } catch (cause) { - await Effect.runPromise(Scope.close(scope, Exit.void)) - throw cause - } - return { - close() { - Effect.runFork(Scope.close(scope, Exit.void)) - }, - } -} - -const respond = Effect.fn("DriveCli.mockRespond")(function* ( - backend: SimulationConnector.BackendConnection, - request: Backend.ProviderInvocation, - responses: ReturnType, -) { - const response = generateResponse(responses.current(), request) - for (const item of response.items) { - if (item.type !== "textDelta" && item.type !== "reasoningDelta") { - yield* backend.rpc["llm.chunk"]({ id: request.id, items: [item] }) - continue - } - for (const text of splitText(item.text)) { - yield* backend.rpc["llm.chunk"]({ id: request.id, items: [{ ...item, text }] }) - yield* Effect.sleep(45 + Math.floor(Math.random() * 35)) - } - } - yield* backend.rpc["llm.finish"]({ id: request.id, reason: response.finish }) -}) - -export function splitText(text: string) { - const words = text.match(/\S+\s*/g) ?? [text] - return Array.from({ length: Math.ceil(words.length / 3) }, (_, index) => - words.slice(index * 3, index * 3 + 3).join(""), - ) -} diff --git a/packages/drive/src/cli/parse.ts b/packages/drive/src/cli/parse.ts deleted file mode 100644 index 8c38f0ce0ec..00000000000 --- a/packages/drive/src/cli/parse.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { commandAcceptsValue, isCommandName } from "./commands.js" -import type { DriveCommand } from "./types.js" - -export function extractCommands(args: ReadonlyArray) { - const commands: DriveCommand[] = [] - const remaining: string[] = [] - const separator = args.indexOf("--") - const cli = separator === -1 ? args : args.slice(0, separator) - const app = separator === -1 ? [] : args.slice(separator + 1) - - for (let index = 0; index < cli.length; index++) { - const flag = cli[index]! - if (!flag.startsWith("--command.")) { - remaining.push(flag) - continue - } - const operation = flag.slice("--command.".length) - if (!isCommandName(operation)) throw new Error(`unknown drive command "${operation}"`) - const valueMode = commandAcceptsValue(operation) - const next = cli[index + 1] - const takesValue = valueMode === true || (valueMode === "optional" && next !== undefined && !next.startsWith("--")) - const value = takesValue ? cli[++index] : undefined - if (valueMode === true && (value === undefined || value.startsWith("--"))) - throw new Error(`${flag} requires a value`) - commands.push({ operation, ...(value === undefined ? {} : { value }) }) - } - return { args: remaining, app, commands } -} diff --git a/packages/drive/src/cli/prune.ts b/packages/drive/src/cli/prune.ts deleted file mode 100644 index d6f0be89bdb..00000000000 --- a/packages/drive/src/cli/prune.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { readdir, rm } from "node:fs/promises" -import { join, resolve } from "node:path" -import { artifactDirectory } from "../instance/instance.js" -import { listManifests, validateName } from "../instance/registry.js" - -export async function prune(options: { readonly name?: string; readonly force?: boolean } = {}) { - if (options.name !== undefined) validateName(options.name) - const directory = artifactDirectory() - const entries = await readdir(directory, { withFileTypes: true }).catch((error: unknown) => { - if (isNodeError(error) && error.code === "ENOENT") return [] - throw error - }) - const manifests = await listManifests() - const active = new Set(manifests.map((manifest) => resolve(manifest.artifacts))) - const manifestNames = new Map(manifests.map((manifest) => [resolve(manifest.artifacts), manifest.name])) - const artifacts = entries - .filter((entry) => entry.isDirectory() && entry.name.startsWith("run-")) - .map((entry) => join(directory, entry.name)) - const matched = await Promise.all( - artifacts.map(async (artifacts) => { - if (options.name === undefined) return artifacts - const storedName = await Bun.file(join(artifacts, "drive", "name")) - .text() - .then((value) => value.trim()) - .catch(() => undefined) - return storedName === options.name || manifestNames.get(resolve(artifacts)) === options.name - ? artifacts - : undefined - }), - ) - const pruned = matched - .filter((artifacts): artifacts is string => artifacts !== undefined) - .filter((artifacts) => options.force || !active.has(resolve(artifacts))) - - await Promise.all(pruned.map((artifacts) => rm(artifacts, { recursive: true, force: true }))) - console.log(pruned.length) -} - -function isNodeError(error: unknown): error is NodeJS.ErrnoException { - return error instanceof Error && "code" in error -} diff --git a/packages/drive/src/cli/response-generator.ts b/packages/drive/src/cli/response-generator.ts deleted file mode 100644 index f928d073dd3..00000000000 --- a/packages/drive/src/cli/response-generator.ts +++ /dev/null @@ -1,302 +0,0 @@ -import { Backend } from "../client/protocol.js" -import type { JsonValue } from "../project.js" - -export const responseTypes = ["text", "reasoning", "tool", "diff"] as const -export type ResponseType = (typeof responseTypes)[number] - -export interface ResponseConfiguration { - readonly types: ReadonlyArray - readonly tools: ReadonlyArray -} - -export interface ResponseUpdate { - readonly types?: ReadonlyArray - readonly tools?: ReadonlyArray -} - -const textResponses = [ - "I took a careful look at the problem and followed it through the parts of the system that actually shape the behavior. The result is simpler than it first appeared: one clear boundary, one owner, and fewer opportunities for state to drift. There is a quiet satisfaction in watching the pieces settle into place.", - "The important path is working now, and the surrounding behavior remains intact. I kept the change focused, made the failure case visible, and checked the point where control passes from one process to another. It is a small adjustment, but it lets a little more daylight into the design.", - "I traced the request from its first input to its final effect and found the useful seam in between. The implementation now says what it means without asking the reader to remember hidden state. Nothing dramatic happened, which is often the nicest possible ending for this kind of work.", - "The pieces fit together cleanly after the change. Inputs are handled where they arrive, ownership stays explicit, and cleanup follows the same path every time. The code feels calmer now, like a room after someone has opened a window and put the books back in order.", - "I checked the current behavior, made the narrow change, and followed it through the edge cases that mattered. The result is direct enough to explain and ordinary enough to trust. Somewhere in the background, the event loop continues its patient little orbit.", -] - -const reasoningResponses = [ - "I should inspect the available context before choosing the smallest reliable path through this.", - "I need to preserve the working behavior while checking the boundary where ownership changes hands.", - "The request contains enough information to proceed, though the assumptions deserve one careful pass first.", - "I will separate the observed behavior from the implementation detail, then test the seam between them.", - "The safest approach is to validate the current state, make one deliberate change, and follow its effects.", -] - -export function createResponseSettings() { - let configuration: ResponseConfiguration = { - types: ["text", "reasoning", "diff", "tool"], - tools: ["write", "apply_patch"], - } - return { - current: () => configuration, - update(input: ResponseUpdate) { - const updated = { - types: input.types ? parseTypes(input.types) : configuration.types, - tools: input.tools ? parseTools(input.tools) : configuration.tools, - } - if ( - updated.types.includes("diff") && - !updated.tools.includes("*") && - !updated.tools.some((tool) => diffTools.has(tool)) - ) - throw new Error("diff responses require apply_patch, write, or edit in --tools") - configuration = updated - return configuration - }, - } -} - -export function generateResponse( - configuration: ResponseConfiguration, - request: Backend.ProviderInvocation, -): { - readonly items: ReadonlyArray - readonly finish: Backend.FinishReason -} { - if (hasToolResult(request.body)) return textResponse() - const tools = offeredTools(request.body).filter( - (tool) => configuration.tools.includes("*") || configuration.tools.includes(tool.name), - ) - const available = configuration.types.filter( - (type) => - (type !== "tool" || tools.length > 0) && (type !== "diff" || tools.some((tool) => diffTools.has(tool.name))), - ) - const type = pick(available) - if (type === "reasoning") - return { - items: [ - { type: "reasoningDelta", text: pick(reasoningResponses) }, - { type: "textDelta", text: pick(textResponses) }, - ], - finish: "stop", - } - if (type === "tool") return toolResponse(tools.slice(0, 3), false) - if (type === "diff") - return toolResponse( - [ - ["apply_patch", "write", "edit"] - .map((name) => tools.find((tool) => tool.name === name)) - .find((tool) => tool !== undefined)!, - ], - true, - ) - if (type === "text") return textResponse() - return { - items: [ - { - type: "textDelta", - text: "No configured response type matched the tools offered by this request.", - }, - ], - finish: "stop", - } -} - -function textResponse() { - return { - items: [{ type: "textDelta" as const, text: pick(textResponses) }], - finish: "stop" as const, - } -} - -interface ToolDefinition { - readonly name: string - readonly parameters: unknown -} - -const diffTools = new Set(["apply_patch", "edit", "write"]) -let gardenExpanded = false - -function toolResponse(tools: ReadonlyArray, diff: boolean) { - return { - items: tools.map((tool, index) => ({ - type: "toolCall" as const, - index, - id: `call_${crypto.randomUUID().replaceAll("-", "").slice(0, 16)}`, - name: tool.name, - input: toolInput(tool, diff), - })), - finish: "tool-calls" as const, - } -} - -function offeredTools(body: unknown) { - if (!isRecord(body) || !Array.isArray(body.tools)) return [] - return body.tools.flatMap((value): ToolDefinition[] => { - if (!isRecord(value)) return [] - const definition = isRecord(value.function) ? value.function : value - if (typeof definition.name !== "string") return [] - return [ - { - name: definition.name, - parameters: definition.parameters ?? definition.inputSchema, - }, - ] - }) -} - -function toolInput(tool: ToolDefinition, diff: boolean) { - const generated = schemaValue(tool.parameters, "input") - const input = isJsonRecord(generated) ? generated : {} - const known = knownInput(tool.name, diff) - if (!isRecord(tool.parameters) || !isRecord(tool.parameters.properties)) return { ...input, ...known } - const properties = tool.parameters.properties - return { - ...input, - ...Object.fromEntries( - Object.entries(known).filter(([key, value]) => key in properties && acceptsValue(properties[key], value)), - ), - } -} - -function knownInput(name: string, diff: boolean): Record { - const suffix = crypto.randomUUID().slice(0, 8) - if (name === "apply_patch") - return { - patchText: gardenPatch(), - } - if (name === "write") - return { - path: "src/garden.js", - filePath: "src/garden.js", - content: - 'export function greet(name, punctuation = "!") {\n const visitor = name.trim() || "traveler"\n return `Hello, ${visitor}${punctuation}`\n}\n', - } - if (name === "edit") - return { - path: ".opencode/opencode.jsonc", - filePath: ".opencode/opencode.jsonc", - oldString: '"name": "Simulation"', - newString: `"name": "Simulation ${suffix}"`, - } - if (name === "read") - return { path: ".opencode/opencode.jsonc", filePath: ".opencode/opencode.jsonc", offset: 1, limit: 120 } - if (name === "glob") return { pattern: "**/*", path: ".", limit: 20 } - if (name === "grep") return { pattern: "simulation", path: ".opencode", include: "*.jsonc", limit: 20 } - if (name === "shell" || name === "bash") - return { command: diff ? "git diff --stat" : "pwd", description: "Inspect the workspace" } - return {} -} - -function gardenPatch() { - const patch = gardenExpanded - ? '*** Begin Patch\n*** Update File: src/garden.js\n@@\n-export function greet(name, punctuation = "!") {\n- const visitor = name.trim() || "traveler"\n- return `Hello, ${visitor}${punctuation}`\n+export function greet(name) {\n+ return `Hello, ${name}.`\n }\n*** End Patch' - : '*** Begin Patch\n*** Update File: src/garden.js\n@@\n-export function greet(name) {\n- return `Hello, ${name}.`\n+export function greet(name, punctuation = "!") {\n+ const visitor = name.trim() || "traveler"\n+ return `Hello, ${visitor}${punctuation}`\n }\n*** End Patch' - gardenExpanded = !gardenExpanded - return patch -} - -function schemaValue(schema: unknown, key: string, root: unknown = schema): JsonValue { - if (!isRecord(schema)) return {} - if (typeof schema.$ref === "string" && schema.$ref.startsWith("#/$defs/")) { - const name = schema.$ref.slice("#/$defs/".length) - if (isRecord(root) && isRecord(root.$defs)) return schemaValue(root.$defs[name], key, root) - } - if ("const" in schema && isJson(schema.const)) return schema.const - if (Array.isArray(schema.enum) && schema.enum.length > 0 && isJson(schema.enum[0])) return schema.enum[0] - const alternative = Array.isArray(schema.anyOf) - ? schema.anyOf[0] - : Array.isArray(schema.oneOf) - ? schema.oneOf[0] - : undefined - if (alternative !== undefined) return schemaValue(alternative, key, root) - if (Array.isArray(schema.allOf) && schema.allOf.length > 0 && schema.type === undefined) - return schemaValue(schema.allOf[0], key, root) - if (schema.type === "object" || isRecord(schema.properties)) { - const properties = isRecord(schema.properties) ? schema.properties : {} - const required = Array.isArray(schema.required) - ? schema.required.filter((value): value is string => typeof value === "string") - : [] - return Object.fromEntries(required.map((name) => [name, schemaValue(properties[name], name, root)])) - } - if (schema.type === "array") { - const count = typeof schema.minItems === "number" ? Math.max(1, schema.minItems) : 1 - return Array.from({ length: count }, () => schemaValue(schema.items, key, root)) - } - if (schema.type === "boolean") return false - if (schema.type === "integer" || schema.type === "number") { - if (typeof schema.minimum === "number") return schema.minimum - if (typeof schema.exclusiveMinimum === "number") return schema.exclusiveMinimum + 1 - return 1 - } - if (schema.type === "null") return null - if (key.toLowerCase().includes("path")) return "." - if (key.toLowerCase().includes("pattern")) return "TODO" - if (key.toLowerCase().includes("command")) return "pwd" - if (key.toLowerCase().includes("content")) return "Generated by the simulated model." - const value = "sample" - return typeof schema.minLength === "number" ? value.padEnd(schema.minLength, "x") : value -} - -function hasToolResult(body: unknown) { - if (!isRecord(body) || !Array.isArray(body.messages)) return false - const message = body.messages.at(-1) - if (!isRecord(message)) return false - if (message.role === "tool") return true - if (!Array.isArray(message.content)) return false - return message.content.some((part) => isRecord(part) && (part.type === "tool-result" || part.type === "tool")) -} - -function acceptsValue(schema: unknown, value: JsonValue) { - if (!isRecord(schema)) return true - if (Array.isArray(schema.enum) && !schema.enum.some((item) => item === value)) return false - if (schema.type === "string") return typeof value === "string" - if (schema.type === "number" || schema.type === "integer") return typeof value === "number" - if (schema.type === "boolean") return typeof value === "boolean" - if (schema.type === "array") return Array.isArray(value) - if (schema.type === "object") return isJsonRecord(value) - return true -} - -function parseTypes(values: ReadonlyArray) { - const types = unique(values) - if (types.length === 0) throw new Error("responses requires at least one type") - const valid = types.filter(isResponseType) - const unknown = types.filter((value) => !isResponseType(value)) - if (unknown.length > 0) throw new Error(`unknown response types: ${unknown.join(", ")}`) - return valid -} - -function parseTools(values: ReadonlyArray) { - const tools = unique(values) - if (tools.length === 0) throw new Error("responses requires at least one tool or *") - if (tools.some((tool) => tool !== "*" && !/^[a-zA-Z0-9_.:-]+$/.test(tool))) - throw new Error("tool names may contain only letters, numbers, dots, underscores, colons, or dashes") - return tools -} - -function unique(values: ReadonlyArray) { - return [...new Set(values.map((value) => value.trim()).filter(Boolean))] -} - -function pick(values: ReadonlyArray) { - return values[Math.floor(Math.random() * values.length)]! -} - -function isRecord(value: unknown): value is Record { - return typeof value === "object" && value !== null && !Array.isArray(value) -} - -function isJsonRecord(value: JsonValue): value is { readonly [key: string]: JsonValue } { - return typeof value === "object" && value !== null && !Array.isArray(value) -} - -function isJson(value: unknown): value is JsonValue { - if (value === null) return true - if (["boolean", "number", "string"].includes(typeof value)) return true - if (Array.isArray(value)) return value.every(isJson) - if (!isRecord(value)) return false - return Object.values(value).every(isJson) -} - -function isResponseType(value: string): value is ResponseType { - return responseTypes.some((type) => type === value) -} diff --git a/packages/drive/src/cli/restart.ts b/packages/drive/src/cli/restart.ts deleted file mode 100644 index 618e189fb22..00000000000 --- a/packages/drive/src/cli/restart.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { request } from "../instance/control.js" -import { resolveInstance } from "../instance/registry.js" -import { configureLogFile, logSuccess } from "../log.js" - -export async function restart(name?: string) { - const manifest = await resolveInstance(name) - configureLogFile(manifest.artifacts) - logSuccess(`restarting ${manifest.name}`) - const recording = await request(manifest.control, "restart") - console.log(recording ?? "success") -} diff --git a/packages/drive/src/cli/run.ts b/packages/drive/src/cli/run.ts deleted file mode 100644 index e5ab6e16974..00000000000 --- a/packages/drive/src/cli/run.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { mkdtemp, rm } from "node:fs/promises" -import { tmpdir } from "node:os" -import { join, resolve } from "node:path" -import * as Effect from "effect/Effect" -import * as Process from "../instance/process.js" -import { prepareProgram } from "../script/tooling.js" - -export const runProgram = Effect.fn("Cli.runProgram")((file: string) => - Effect.acquireUseRelease( - Effect.tryPromise({ - try: () => mkdtemp(join(tmpdir(), "opencode-drive-run-")), - catch: (cause) => cause, - }), - (artifacts) => - Effect.gen(function* () { - const runner = yield* Effect.tryPromise({ - try: () => prepareProgram(artifacts, resolve(file)), - catch: (cause) => cause, - }) - const result = yield* Process.run([process.execPath, runner], { - extendEnv: true, - stdin: "inherit", - stdout: "inherit", - stderr: "inherit", - }) - if (result.status !== 0) return yield* Effect.fail(new Error(`program exited with status ${result.status}`)) - return undefined - }), - (artifacts) => Effect.promise(() => rm(artifacts, { recursive: true, force: true })), - ), -) diff --git a/packages/drive/src/cli/script-init.ts b/packages/drive/src/cli/script-init.ts deleted file mode 100644 index 152d5c0b75f..00000000000 --- a/packages/drive/src/cli/script-init.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { mkdir, open, rm } from "node:fs/promises" -import { dirname, resolve } from "node:path" -import { logSuccess } from "../log.js" - -const template = `import { defineScript, Effect, Llm } from "opencode-drive" - -export default defineScript({ - project: { - files: { - "src/example.ts": "export const value = 1\\n", - }, - }, - run: ({ ui, llm }) => - Effect.gen(function* () { - yield* llm.queue(Llm.text("The value is 1.")) - yield* ui.submit("Read src/example.ts") - yield* ui.waitFor("The value is 1.") - yield* ui.screenshot("result") - }), -}) -` - -export async function initScript(path: string) { - const file = resolve(path) - await mkdir(dirname(file), { recursive: true }) - const handle = await open(file, "wx").catch((error: unknown) => { - if (isAlreadyExists(error)) throw new Error(`script already exists: ${file}`, { cause: error }) - throw error - }) - try { - await handle.writeFile(template) - } catch (error) { - await handle.close().catch(() => undefined) - await rm(file, { force: true }) - throw error - } - await handle.close() - logSuccess("created script") - console.log(file) -} - -function isAlreadyExists(error: unknown): error is NodeJS.ErrnoException { - return error instanceof Error && "code" in error && error.code === "EEXIST" -} diff --git a/packages/drive/src/cli/script.ts b/packages/drive/src/cli/script.ts deleted file mode 100644 index 60ec73d81f7..00000000000 --- a/packages/drive/src/cli/script.ts +++ /dev/null @@ -1,199 +0,0 @@ -import { join, resolve } from "node:path" -import { pathToFileURL } from "node:url" -import * as Deferred from "effect/Deferred" -import * as Effect from "effect/Effect" -import * as Schema from "effect/Schema" -import * as OpenCodeDriver from "../driver/index.js" -import type * as OpenCodeTui from "../driver/client.js" -import * as OpenCodeUi from "../driver/ui.js" -import * as PreparedDriver from "../driver/prepared.js" -import type * as OpenCodeInstance from "../instance/runtime.js" -import { createScriptFileSystem } from "../script/filesystem.js" -import { hasGitMetadata } from "../script/project.js" -import { Names as ToolNames } from "../tool/types.js" -import type { AutomaticScriptDefinition, ScriptDefinition } from "../script/types.js" - -export const loadScript = Effect.fn("DriveCli.loadScript")((file: string) => - Effect.tryPromise({ - try: async () => { - const module: unknown = await import(pathToFileURL(resolve(file)).href) - return isRecord(module) ? { default: module.default } : {} - }, - catch: (cause) => cause, - }).pipe( - Effect.flatMap((module) => - isScriptDefinition(module.default) - ? Effect.succeed(module.default) - : Effect.fail(new Error("script must default-export defineScript(...)")), - ), - ), -) - -export const runScript = Effect.fn("DriveCli.runScript")(function* ( - script: ScriptDefinition, - instance: OpenCodeInstance.Instance, - onScreenshot?: (path: string) => void, - onRecording?: (path: string) => void, - onReady?: () => void, -) { - const prepared = yield* PreparedDriver.make(instance, { - visible: instance.visible, - launch: "launch" in script ? "manual" : "automatic", - tuiName: "default", - tui: script.tui, - }) - const protectGit = yield* Effect.promise(() => hasGitMetadata(join(instance.artifacts, "files"))) - const operationFailure = yield* Deferred.make() - const runUi = (effect: Effect.Effect) => - effect.pipe( - Effect.tapError((cause) => - cause instanceof OpenCodeDriver.UiTimeoutError - ? Deferred.fail(operationFailure, cause).pipe(Effect.asVoid) - : Effect.void, - ), - ) - const recordings = new Set() - const reportRecording = (path: string) => { - if (recordings.has(path)) return - recordings.add(path) - onRecording?.(path) - } - const adaptUi = (ui: OpenCodeUi.Ui): OpenCodeUi.Ui => { - const transformed = OpenCodeUi.transform(ui, runUi) - return { - ...transformed, - screenshot: (name) => - transformed.screenshot(name).pipe(Effect.tap((path) => Effect.sync(() => onScreenshot?.(path)))), - } - } - const adaptTui = (tui: OpenCodeTui.Tui): OpenCodeTui.Tui => { - const recording = tui.recording - return { - ui: adaptUi(tui.ui), - close: tui.close, - ...(recording === undefined - ? {} - : { - recording: { - path: recording.path, - timeline: recording.timeline, - finish: () => - runUi(recording.finish()).pipe(Effect.tap((path) => Effect.sync(() => reportRecording(path)))), - }, - }), - } - } - const tuiOptions = (options?: OpenCodeTui.TuiOptions) => ({ - ...("launch" in script ? script.tui : undefined), - ...options, - }) - function launchTui(options?: OpenCodeTui.TuiOptions): ReturnType - function launchTui(name: string, options?: OpenCodeTui.TuiOptions): ReturnType - function launchTui(nameOrOptions?: string | OpenCodeTui.TuiOptions, options?: OpenCodeTui.TuiOptions) { - const launched = - typeof nameOrOptions === "string" - ? prepared.tuis.launch(nameOrOptions, tuiOptions(options)) - : prepared.tuis.launch(tuiOptions(nameOrOptions)) - return launched.pipe( - Effect.tap(() => Effect.sync(() => onReady?.())), - Effect.map(adaptTui), - ) - } - const tuis: OpenCodeTui.Tuis = { launch: launchTui } - const context = { - fs: createScriptFileSystem(join(instance.artifacts, "files"), { - git: protectGit, - }), - tuis, - server: { - launch: prepared.server.launch, - kill: prepared.server.kill, - }, - llm: prepared.llm, - tools: prepared.tools, - artifacts: instance.artifacts, - } - const primaryTui = prepared.primary - const automatic = (definition: AutomaticScriptDefinition) => { - if (primaryTui === undefined || prepared.driver === undefined) - return Effect.fail(new Error("automatic script did not launch its primary TUI")) - const tui = adaptTui(primaryTui) - return definition.run({ - ...context, - opencode: prepared.driver.opencode, - tui, - ui: tui.ui, - }) - } - const execution = "launch" in script ? script.run({ ...context, tui: null, ui: null }) : automatic(script) - if (!Effect.isEffect(execution)) return yield* Effect.fail(new Error("script run must return an Effect")) - if (primaryTui !== undefined) onReady?.() - yield* Effect.raceAllFirst([ - execution, - Deferred.await(operationFailure), - prepared.failure.pipe(Effect.catchIf(isZeroStatusTuiExit, () => Effect.void)), - ]) - const report = yield* prepared.settle() - for (const path of report.recordings) reportRecording(path) - return undefined -}) - -function isZeroStatusTuiExit(cause: unknown) { - return ( - cause instanceof OpenCodeDriver.OpenCodeDriverError && - cause.operation === "tui.exit" && - cause.message.endsWith("status 0") - ) -} - -function isRecord(value: unknown): value is Readonly> { - return typeof value === "object" && value !== null && !Array.isArray(value) -} - -function isScriptDefinition(value: unknown): value is ScriptDefinition { - if (!isRecord(value)) return false - return ( - value.kind === "opencode-drive/script" && - typeof value.run === "function" && - (value.project === undefined || isScriptProject(value.project)) && - (value.config === undefined || isJsonObject(value.config)) && - (value.tuiConfig === undefined || isJsonObject(value.tuiConfig)) && - (value.setup === undefined || typeof value.setup === "function") && - (value.tools === undefined || isToolConfiguration(value.tools)) && - (value.tui === undefined || isTuiOptions(value.tui)) && - (!("launch" in value) || value.launch === "manual") - ) -} - -function isToolConfiguration(value: unknown) { - return typeof value === "function" || Schema.is(ToolNames)(value) -} - -function isTuiOptions(value: unknown) { - if (!isRecord(value)) return false - if (value.recording !== undefined && typeof value.recording !== "boolean") return false - if (value.viewport === undefined) return true - if (!isRecord(value.viewport)) return false - return ( - typeof value.viewport.cols === "number" && - Number.isFinite(value.viewport.cols) && - typeof value.viewport.rows === "number" && - Number.isFinite(value.viewport.rows) - ) -} - -function isJsonObject(value: unknown) { - if (!isRecord(value)) return false - const prototype = Object.getPrototypeOf(value) - return prototype === Object.prototype || prototype === null -} - -function isScriptProject(value: unknown) { - if (!isRecord(value)) return false - if (value.git !== undefined && typeof value.git !== "boolean") return false - if (value.files === undefined) return true - if (!isRecord(value.files)) return false - const prototype = Object.getPrototypeOf(value.files) - if (prototype !== Object.prototype && prototype !== null) return false - return Object.values(value.files).every((contents) => typeof contents === "string" || contents instanceof Uint8Array) -} diff --git a/packages/drive/src/cli/send.ts b/packages/drive/src/cli/send.ts deleted file mode 100644 index 00ca6cf02c5..00000000000 --- a/packages/drive/src/cli/send.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { executeCommands } from "./commands.js" -import type { SendOptions } from "./types.js" -import { defaultPort } from "../client/index.js" -import { resolveInstance, resolveVisibleInstance } from "../instance/registry.js" -import { configureLogFile } from "../log.js" -import { readInstanceMediaDirectory } from "../instance/media.js" - -export async function send(options: SendOptions) { - if (options.commands.length === 0) throw new Error("send requires at least one --command.ui.* flag") - const target = await resolveSendTarget( - options.name, - options.commands.some((command) => command.operation === "ui.screenshot"), - ) - const result = await executeCommands(target.endpoint, options.commands, { - screenshotDirectory: target.screenshotDirectory, - }) - if ( - options.commands.length === 1 && - ["ui.screenshot", "ui.matches", "ui.recording.finish"].includes(options.commands[0]?.operation ?? "") - ) { - console.log(result.results[0]?.result) - return - } - if ( - options.commands.length === 1 && - ["ui.state", "ui.snapshot", "ui.capture"].includes(options.commands[0]?.operation ?? "") - ) { - console.log(JSON.stringify(result.results[0]?.result, undefined, 2)) - return - } - console.log("success") -} - -export async function resolveSendEndpoint(name?: string) { - return (await resolveSendTarget(name)).endpoint -} - -async function resolveSendTarget(name?: string, screenshot = false) { - if (name) { - const manifest = await resolveInstance(name) - configureLogFile(manifest.artifacts) - return { - endpoint: manifest.endpoints.ui, - ...(screenshot - ? { screenshotDirectory: await readInstanceMediaDirectory(manifest.artifacts, manifest.name) } - : {}), - } - } - const manifest = await resolveVisibleInstance() - if (manifest) { - configureLogFile(manifest.artifacts) - return { - endpoint: manifest.endpoints.ui, - ...(screenshot - ? { screenshotDirectory: await readInstanceMediaDirectory(manifest.artifacts, manifest.name) } - : {}), - } - } - return { endpoint: `ws://127.0.0.1:${defaultPort}` } -} diff --git a/packages/drive/src/cli/start.ts b/packages/drive/src/cli/start.ts deleted file mode 100644 index 9310f39834e..00000000000 --- a/packages/drive/src/cli/start.ts +++ /dev/null @@ -1,485 +0,0 @@ -import * as Effect from "effect/Effect" -import * as Cause from "effect/Cause" -import * as Exit from "effect/Exit" -import { toStringUnknown } from "effect/Inspectable" -import { initializeInstance } from "../instance/instance.js" -import * as DriveProcess from "../instance/process.js" -import * as OpenCodeInstance from "../instance/runtime.js" -import { mkdir, rm } from "node:fs/promises" -import { join } from "node:path" -import * as SimulationConnector from "../simulation/connector.js" -import { connectMockBackend } from "./mock-backend.js" -import { createResponseSettings } from "./response-generator.js" -import { loadScript, runScript } from "./script.js" -import type { ScriptDefinition } from "../script/types.js" -import { prepareScriptModule } from "../script/tooling.js" -import { finalizeRecording } from "../recording/finalize.js" -import { listenControl } from "../instance/control.js" -import { configureLogFile, logError, logReadyPaths, logSuccess } from "../log.js" -import { - controlPath, - markReady, - markStarting, - initializeManifest, - register, - registryDirectory, - resolveInstance, - unregister, -} from "../instance/registry.js" -import type { StartOptions } from "./types.js" - -export const start = Effect.fn("DriveCli.start")((options: StartOptions) => Effect.scoped(startScoped(options))) - -const startScoped = Effect.fn("DriveCli.startScoped")(function* (options: StartOptions) { - const initializerPid = Number.parseInt(options.daemon ? (process.env.OPENCODE_DRIVE_INITIALIZER_PID ?? "") : "", 10) - if (options.daemon) delete process.env.OPENCODE_DRIVE_INITIALIZER_PID - const initialized = yield* fromPromise(() => - initializeManifest(options.name, process.cwd(), () => initializeInstance(options.name), { - temporary: true, - ...(Number.isInteger(initializerPid) && initializerPid > 0 ? { adoptPid: initializerPid } : {}), - }), - ) - configureLogFile(initialized.artifacts) - logSuccess(`starting ${options.name}`) - logSuccess(`using artifacts ${initialized.artifacts}`) - if (!options.visible && !options.script && !options.daemon) - return yield* startDetached(options, initialized.artifacts) - const scriptPath = options.script - const scriptModule = scriptPath - ? yield* fromPromise(async () => { - logSuccess(`preparing script ${scriptPath}`) - return prepareScriptModule(initialized.artifacts, scriptPath) - }) - : undefined - const script = scriptModule - ? yield* loadScript(scriptModule).pipe( - Effect.tap(() => Effect.sync(() => logSuccess(`loading script ${scriptModule}`))), - ) - : undefined - if (script && "launch" in script && options.record) { - return yield* Effect.fail(new Error("--record is not supported when launch is manual")) - } - const responses = createResponseSettings() - logSuccess("launching instance") - const log = options.visible ? (message: string) => logSuccess(message, { terminal: false }) : logSuccess - const instance = yield* OpenCodeInstance.make({ - artifacts: initialized.artifacts, - name: options.name, - command: options.command, - dev: options.dev, - scripted: options.script !== undefined, - visible: options.visible, - record: options.record, - viewport: script?.tui?.viewport, - project: script?.project, - config: script?.config, - tui: script?.tuiConfig, - setup: script?.setup, - tools: script?.tools, - log, - }) - yield* Effect.acquireRelease( - fromPromise(() => - register({ - version: 1, - name: options.name, - pid: process.pid, - startedAt: new Date().toISOString(), - cwd: process.cwd(), - artifacts: instance.artifacts, - visible: options.visible, - status: "starting", - endpoints: instance.endpoints, - control: controlPath(options.name), - }), - ), - () => fromPromise(() => unregister(options.name, process.pid)).pipe(Effect.ignore), - ) - return yield* lifecycle(options, instance, responses, script, log) -}) - -function lifecycle( - options: StartOptions, - instance: OpenCodeInstance.Instance, - responses: ReturnType, - script: ScriptDefinition | undefined, - log: (message: string) => void, -) { - return Effect.callback((resume) => { - const abort = new AbortController() - const promise = runLifecycle(options, instance, responses, script, log, abort.signal) - void promise.then( - () => resume(Effect.void), - (error) => resume(Effect.fail(error)), - ) - return Effect.gen(function* () { - abort.abort(new Error("opencode-drive interrupted")) - yield* Effect.promise(() => promise.catch(() => undefined)) - }) - }) -} - -async function runLifecycle( - options: StartOptions, - instance: OpenCodeInstance.Instance, - responses: ReturnType, - script: ScriptDefinition | undefined, - log: (message: string) => void, - signal: AbortSignal, -) { - let completed = false - let current: ReturnType | undefined - let restarting: Promise | undefined - let stopping = false - const screenshots: string[] = [] - const recordings: string[] = [] - let driveReady = false - let recording: Promise | undefined - const finishCurrentRecording = (onProgress?: (percent: number) => void) => { - if (!options.record || options.visible || !driveReady || options.script !== undefined) - return Promise.resolve(undefined) - recording ??= finishRecording(instance, onProgress) - return recording - } - const interrupt = () => { - stopping = true - current?.abort.abort(signal.reason) - if (!options.script) void stopInstance().catch((error) => logError(`failed to stop interrupted instance: ${error}`)) - } - signal.addEventListener("abort", interrupt, { once: true }) - const stopInstance = async (onProgress?: (percent: number) => void) => { - try { - const output = await finishCurrentRecording(onProgress) - return { - ...(output ? { recording: output } : {}), - screenshots: [...screenshots], - } - } finally { - stopping = true - current?.abort.abort(new Error("opencode-drive stopped")) - await runEffect(instance.stop) - } - } - const completeScript = async () => { - completed = true - const result = await stopInstance() - for (const screenshot of result.screenshots) console.log(screenshot) - } - let closeControl: (() => Promise) | undefined - let failure: unknown - try { - closeControl = await listenControl(controlPath(options.name), { - restart: () => { - if (restarting) return restarting - restarting = (async () => { - await markStarting(options.name, process.pid) - const output = await finishCurrentRecording() - const previous = current - const restartReason = new Error("script restarted") - previous?.abort.abort(restartReason) - await previous?.promise - driveReady = false - await runEffect(instance.restart) - recording = undefined - current = run( - options, - instance, - responses, - script, - (path) => screenshots.push(path), - (path) => recordings.push(path), - log, - ) - await current.ready - driveReady = true - await markReady(options.name, process.pid) - await logReadyPaths(instance.artifacts, { - terminal: !options.visible, - }) - return output - })().finally(() => { - restarting = undefined - }) - return restarting - }, - stop: stopInstance, - responses: async (input) => { - if (options.script) throw new Error("responses are unavailable when --script owns the simulation backend") - return responses.update(input) - }, - }) - if (signal.aborted) return - current = run( - options, - instance, - responses, - script, - (path) => screenshots.push(path), - (path) => recordings.push(path), - log, - ) - await current.ready - driveReady = true - log(`ready ${options.name}`) - await markReady(options.name, process.pid) - await logReadyPaths(instance.artifacts, { terminal: !options.visible }) - if (options.visible) { - while (true) { - const active: NonNullable = current - let result: { readonly script: true } | { readonly script: false; readonly status: number } - try { - result = options.script - ? await Promise.race([ - active.promise.then(() => ({ script: true as const })), - runEffect(instance.wait).then((status) => ({ script: false as const, status })), - ]) - : { script: false as const, status: await runEffect(instance.wait) } - } catch (error) { - if (stopping) return - if (restarting || active !== current) { - await restarting - continue - } - throw error - } - if (restarting || active !== current) { - await restarting - continue - } - if (result.script) { - await completeScript() - } - const status = result.script ? await runEffect(instance.wait) : result.status - if (status !== 0 && !stopping) process.exitCode = status - return - } - } - while (true) { - const active: NonNullable = current - try { - await active.promise - } catch (error) { - if (stopping) break - if (restarting || active !== current) { - await restarting - continue - } - throw error - } - if (stopping) break - if (restarting) { - await restarting - continue - } - if (active !== current) continue - if (options.script) { - await completeScript() - break - } - completed = true - break - } - } catch (error) { - failure = error - throw error - } finally { - signal.removeEventListener("abort", interrupt) - current?.abort.abort(new Error("opencode-drive stopped")) - let cleanupFailure: unknown - const recordingPath = await finishCurrentRecording().catch((error) => { - logError(`failed to export recording: ${error}`) - return undefined - }) - await closeControl?.().catch((error) => { - cleanupFailure ??= error - logError(`failed to close control socket: ${error}`) - }) - await runEffect(instance.stop).catch((error) => { - cleanupFailure ??= error - logError(`failed to stop OpenCode: ${error}`) - }) - await unregister(options.name, process.pid).catch((error) => { - cleanupFailure ??= error - logError(`failed to unregister ${options.name}: ${error}`) - }) - if (options.script && !options.visible) report(completed ? "completed" : undefined) - if (options.script && recordingPath) logSuccess(`recording ${recordingPath}`) - if (options.script) for (const output of recordings) logSuccess(`recording ${output}`) - if (shouldCleanArtifacts(options.script, completed, failure, cleanupFailure)) - await rm(instance.artifacts, { recursive: true, force: true }).catch((error) => { - cleanupFailure ??= error - logError(`failed to clean artifacts ${instance.artifacts}: ${error}`) - }) - if (options.script && failure !== undefined) { - logError(failure instanceof Error ? failure.message : toStringUnknown(failure)) - process.exit(1) - } - if (failure === undefined && cleanupFailure !== undefined) process.exitCode = 1 - } -} - -function shouldCleanArtifacts( - script: string | undefined, - completed: boolean, - failure: unknown, - cleanupFailure: unknown, -) { - return ( - script !== undefined && - completed && - failure === undefined && - cleanupFailure === undefined && - (process.exitCode === undefined || process.exitCode === 0) && - process.env.OPENCODE_DRIVE_KEEP_ARTIFACTS !== "1" - ) -} - -async function finishRecording(instance: OpenCodeInstance.Instance, onProgress?: (percent: number) => void) { - const expected = await runEffect(instance.recording) - if (!expected) throw new Error("recording was not enabled for this instance") - let timeline: string - const process = await runEffect(instance.primary) - if (!(await runEffect(process.isRunning))) { - timeline = expected.timeline - } else { - timeline = await runEffect( - Effect.scoped( - SimulationConnector.ui(instance.endpoints.ui, { - connectTimeout: 60_000, - }).pipe( - Effect.flatMap((connection) => connection.rpc["ui.recording.finish"]()), - Effect.timeoutOrElse({ - duration: 60_000, - orElse: () => Effect.fail(new Error("ui.recording.finish timed out")), - }), - ), - ), - ) - } - return finalizeRecording(timeline, expected, { onProgress }) -} - -const startDetached = Effect.fn("DriveCli.startDetached")(function* (options: StartOptions, artifacts: string) { - const ownerLog = join(registryDirectory(), `${options.name}.log`) - yield* fromPromise(() => mkdir(registryDirectory(), { recursive: true })) - yield* fromPromise(() => rm(ownerLog, { force: true })) - logSuccess(`launching detached owner for ${options.name}`) - const child = yield* DriveProcess.spawn( - [ - process.execPath, - process.argv[1]!, - "start", - "--daemon", - "--name", - options.name, - ...(options.script ? ["--script", options.script] : []), - ...(options.dev ? ["--dev", options.dev] : []), - ...(options.record ? ["--record"] : []), - ...(options.command.length ? ["--", ...options.command] : []), - ], - { - cwd: process.cwd(), - env: { - ...process.env, - OPENCODE_DRIVE_LOG: configureLogFile(artifacts), - OPENCODE_DRIVE_OWNER_LOG: ownerLog, - OPENCODE_DRIVE_INITIALIZER_PID: String(process.pid), - }, - stdin: "ignore", - stdout: "ignore", - stderr: "ignore", - detached: true, - }, - ) - logSuccess(`waiting for ${options.name} to become ready`) - const deadline = Date.now() + 60_000 - while (Date.now() < deadline) { - const manifest = yield* fromPromise(() => resolveInstance(options.name).catch(() => undefined)) - if (manifest?.pid === child.pid) { - logSuccess(`ready ${options.name}`) - yield* fromPromise(() => logReadyPaths(manifest.artifacts)) - yield* child.detach - return - } - if (!(yield* child.isRunning)) { - const status = yield* child.exitCode - yield* Effect.fail(new Error(`detached instance exited with status ${status}; see ${ownerLog}`)) - } - yield* Effect.sleep(50) - } - yield* child.terminate - yield* Effect.fail(new Error(`timed out starting drive instance "${options.name}"; see ${ownerLog}`)) -}) - -function run( - options: StartOptions, - instance: OpenCodeInstance.Instance, - responses: ReturnType, - driveScript: ScriptDefinition | undefined, - onScreenshot: (path: string) => void, - onRecording: (path: string) => void, - log: (message: string) => void, -) { - const abort = new AbortController() - const readiness = Promise.withResolvers() - let markedReady = false - const ready = () => { - if (markedReady) return - markedReady = true - readiness.resolve() - } - const promise = (async () => { - if (!driveScript) { - log("waiting for OpenCode") - await runEffect(instance.waitForDrive("both")) - log("OpenCode ready") - } - if (driveScript) { - log("running script") - const exit = await Effect.runPromiseExit( - Effect.scoped(runScript(driveScript, instance, onScreenshot, onRecording, ready)), - { signal: abort.signal }, - ) - if (Exit.isFailure(exit)) { - if (abort.signal.aborted && Cause.hasInterruptsOnly(exit.cause)) return - throw Cause.squash(exit.cause) - } - ready() - log("script completed") - return - } - const child = await runEffect(instance.primary) - const mock = await connectMockBackend(instance.endpoints.backend, responses) - ready() - abort.signal.addEventListener("abort", () => mock.close(), { - once: true, - }) - const status = await Promise.race([ - runEffect(child.exitCode), - new Promise((resolve) => - abort.signal.addEventListener("abort", () => resolve(0), { - once: true, - }), - ), - ]) - mock.close() - if (status !== 0 && !abort.signal.aborted) process.exitCode = status - })().catch((error) => { - if (!markedReady) readiness.reject(error) - throw error - }) - void promise.catch(() => undefined) - return { - abort, - ready: readiness.promise, - promise, - } -} - -const runEffect = (effect: Effect.Effect) => Effect.runPromise(effect) - -const fromPromise = (task: () => Promise) => Effect.tryPromise({ try: task, catch: (error) => error }) - -function report(status?: string) { - if (status) logSuccess(status) -} diff --git a/packages/drive/src/cli/stop.ts b/packages/drive/src/cli/stop.ts deleted file mode 100644 index 090909ae66b..00000000000 --- a/packages/drive/src/cli/stop.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { rm } from "node:fs/promises" -import { basename, dirname, resolve } from "node:path" -import { artifactDirectory } from "../instance/instance.js" -import { requestStop } from "../instance/control.js" -import { manifestPath, resolveInstance } from "../instance/registry.js" -import { configureLogFile, logSuccess } from "../log.js" - -export async function stop(name?: string) { - const manifest = await resolveInstance(name) - configureLogFile(manifest.artifacts) - const result = await requestStop(manifest.control, (percent) => { - logSuccess(`Rendering video: ${percent}%`) - }) - const deadline = Date.now() + 5 * 60_000 - while (Date.now() < deadline) { - const current: unknown = await Bun.file(manifestPath(manifest.name)) - .json() - .catch(() => undefined) - if (typeof current !== "object" || current === null || !("pid" in current) || current.pid !== manifest.pid) { - for (const screenshot of result.screenshots) console.log(screenshot) - if (result.recording) { - logSuccess(`Video successfully created: ${result.recording}`) - } else if (result.screenshots.length === 0) { - console.log("success") - } - await pruneArtifacts(manifest.artifacts) - return - } - await Bun.sleep(25) - } - throw new Error(`timed out stopping drive instance "${manifest.name}"`) -} - -async function pruneArtifacts(artifacts: string) { - const directory = resolve(artifacts) - if (dirname(directory) !== artifactDirectory() || !/^run-[^/\\]+$/.test(basename(directory))) return - await rm(directory, { recursive: true, force: true }) -} diff --git a/packages/drive/src/cli/types.ts b/packages/drive/src/cli/types.ts deleted file mode 100644 index 3d22c93ac6d..00000000000 --- a/packages/drive/src/cli/types.ts +++ /dev/null @@ -1,25 +0,0 @@ -import type { Frontend } from "../client/index.js" - -export interface DriveCommand { - readonly operation: Exclude | "ui.screenshot" - readonly value?: string -} - -export interface StartOptions { - readonly kind: "start" - readonly name: string - readonly daemon: boolean - readonly script?: string - readonly visible: boolean - readonly record: boolean - readonly dev?: string - readonly command: ReadonlyArray -} - -export interface SendOptions { - readonly kind: "send" - readonly name?: string - readonly commands: ReadonlyArray -} - -export type CliOptions = StartOptions | SendOptions diff --git a/packages/drive/src/client/index.ts b/packages/drive/src/client/index.ts deleted file mode 100644 index 5a417f76d5b..00000000000 --- a/packages/drive/src/client/index.ts +++ /dev/null @@ -1,11 +0,0 @@ -import type { Backend } from "./protocol.js" - -/** Default port of the OpenCode UI simulation server. */ -export const defaultPort = 40900 -/** Default port of the OpenCode backend (LLM) simulation server. */ -export const defaultBackendPort = 40950 - -export { Backend, Frontend, Handshake, JsonRpc, SimulationProtocol } from "./protocol.js" -export type BackendFinishReason = Backend.FinishReason -export type BackendItem = Backend.Item -export type OpenedExchange = Backend.ProviderInvocation diff --git a/packages/drive/src/client/protocol.ts b/packages/drive/src/client/protocol.ts deleted file mode 100644 index 77eb04cd464..00000000000 --- a/packages/drive/src/client/protocol.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { Backend, Frontend, Handshake, JsonRpc } from "@opencode-ai/protocol/simulation" - -export { Backend, Frontend, Handshake, JsonRpc } -export const SimulationProtocol = { Backend, Frontend, Handshake, JsonRpc } diff --git a/packages/drive/src/driver/client.ts b/packages/drive/src/driver/client.ts deleted file mode 100644 index 47d6e983177..00000000000 --- a/packages/drive/src/driver/client.ts +++ /dev/null @@ -1,277 +0,0 @@ -import * as Cause from "effect/Cause" -import * as Effect from "effect/Effect" -import * as Exit from "effect/Exit" -import * as Ref from "effect/Ref" -import * as Semaphore from "effect/Semaphore" -import * as Scope from "effect/Scope" -import * as Deferred from "effect/Deferred" -import type * as OpenCodeInstance from "../instance/runtime.js" -import type * as SimulationConnector from "../simulation/connector.js" -import type { Frontend } from "../client/protocol.js" -import { finalizeRecording } from "../recording/finalize.js" -import { error, type OpenCodeDriverError } from "./error.js" -import * as OpenCodeUi from "./ui.js" -import * as SharedEffect from "./shared.js" - -export interface TuiOptions { - readonly recording?: boolean - readonly viewport?: Frontend.ResizeParams -} - -export interface Tui { - readonly ui: OpenCodeUi.Ui - readonly recording?: Recording - readonly close: () => Effect.Effect -} - -export interface Recording { - readonly path: string - readonly timeline: string - readonly finish: () => Effect.Effect -} - -interface ManagedTui extends Tui { - readonly compatibility: SimulationConnector.EndpointCompatibility - readonly _exitCode: Effect.Effect - readonly _recording?: { - readonly finishTimeline: Effect.Effect - readonly exportRecording: Effect.Effect - } -} - -export const make = Effect.fn("OpenCodeTui.make")(function* ( - instance: OpenCodeInstance.Instance, - visible: boolean, - identity: string, - options: TuiOptions, - connector: SimulationConnector.Interface, - compatibility?: SimulationConnector.CompatibilityPolicy, -) { - if (visible && options.recording) - return yield* Effect.fail(error("tui.launch", "recording requires a headless OpenCode TUI")) - const launched = yield* Effect.acquireRelease( - instance - .launchTui(identity, { - record: options.recording, - viewport: options.viewport, - }) - .pipe(Effect.mapError((cause) => error("tui.launch", cause))), - (client) => client.close.pipe(Effect.catchCause((cause) => Effect.logError("OpenCode TUI cleanup failed", cause))), - ) - const connection = yield* connector.ui(launched.endpoint, { compatibility }) - const ui = OpenCodeUi.make(connection, { screenshotDirectory: launched.media }) - yield* ui.waitFor((state) => state.focused.editor, { - timeout: 30_000, - interval: 50, - }) - - const recording = launched.recording - let managedRecording: ManagedTui["_recording"] - if (recording !== undefined) { - const finishTimeline = yield* SharedEffect.make( - Effect.gen(function* () { - const timeline = yield* ui.finishRecording() - if (timeline !== recording.timeline) - return yield* Effect.fail( - error("recording.finish", `OpenCode returned an unexpected recording path: ${timeline}`), - ) - return timeline - }), - ) - const exportFinishedRecording = yield* SharedEffect.make( - Effect.flatMap(finishTimeline, (timeline) => - Effect.tryPromise({ - try: (signal) => finalizeRecording(timeline, recording, { signal }), - catch: (cause) => error("recording.export", cause), - }), - ), - ) - managedRecording = { - finishTimeline, - exportRecording: exportFinishedRecording, - } - yield* Effect.addFinalizer(() => - finishTimeline.pipe( - Effect.asVoid, - Effect.catchCause((cause) => Effect.logError("OpenCode TUI recording finalization failed", cause)), - ), - ) - } - - return { - ui, - compatibility: connection.compatibility, - close: () => Effect.void, - _exitCode: launched.process.exitCode.pipe(Effect.mapError((cause) => error("tui.exit", cause))), - ...(recording === undefined || managedRecording === undefined - ? {} - : { - recording: { - path: recording.video, - timeline: recording.timeline, - finish: () => managedRecording.exportRecording, - }, - _recording: managedRecording, - }), - } satisfies ManagedTui -}) - -export interface Tuis { - readonly launch: { - (options?: TuiOptions): Effect.Effect - /** Launches a named TUI. The name is released when that TUI closes. */ - (name: string, options?: TuiOptions): Effect.Effect - } -} - -export type TuiLaunchError = - | OpenCodeDriverError - | SimulationConnector.SimulationCompatibilityError - | OpenCodeUi.OperationError - | OpenCodeUi.UiPredicateError - | OpenCodeUi.UiWaitOptionsError - -export interface UnexpectedExit { - readonly name: string - readonly status: number -} - -export interface Control extends Tuis { - readonly compatibility: Effect.Effect> - readonly unexpectedExit: Effect.Effect - readonly settle: () => Effect.Effect, OpenCodeDriverError | OpenCodeUi.OperationError> -} - -export const makeTuis = Effect.fn("OpenCodeTuis.make")(function* ( - instance: OpenCodeInstance.Instance, - visible: boolean, - connector: SimulationConnector.Interface, - compatibilityPolicy?: SimulationConnector.CompatibilityPolicy, -) { - const parentScope = yield* Scope.Scope - const tuisScope = yield* Scope.fork(parentScope, "parallel") - const lock = yield* Semaphore.make(1) - let closed = false - let recordings: ReadonlyArray> = [] - const nextIdentity = yield* Ref.make(0) - let active: ReadonlyMap = new Map() - const unexpectedExit = yield* Deferred.make() - let compatibility: ReadonlyArray = [] - - const launchNamed = Effect.fn("OpenCodeTuis.launchNamed")(function* (identity: string, options: TuiOptions = {}) { - return yield* lock.withPermit( - Effect.gen(function* () { - if (closed) return yield* Effect.fail(error("tui.launch", "OpenCode TUIs are closed")) - if (active.has(identity)) - return yield* Effect.fail(error("tui.launch", `TUI "${identity}" is already connected`)) - const scope = yield* Scope.fork(tuisScope) - active = new Map(active).set(identity, scope) - const client = yield* make(instance, visible, identity, options, connector, compatibilityPolicy).pipe( - Scope.provide(scope), - Effect.onError(() => - Effect.sync(() => { - const next = new Map(active) - next.delete(identity) - active = next - }).pipe(Effect.andThen(Scope.close(scope, Exit.void))), - ), - ) - compatibility = [...compatibility, client.compatibility] - const recording = client._recording - if (recording !== undefined) recordings = [...recordings, recording] - const claim = lock.withPermit( - Effect.sync(() => { - if (active.get(identity) !== scope) return false - const next = new Map(active) - next.delete(identity) - active = next - return true - }), - ) - const release = claim.pipe(Effect.flatMap((owned) => (owned ? Scope.close(scope, Exit.void) : Effect.void))) - yield* client._exitCode.pipe( - Effect.flatMap((status) => - claim.pipe( - Effect.flatMap((owned) => - owned - ? Deferred.succeed(unexpectedExit, { - name: identity, - status, - }).pipe(Effect.andThen(Scope.close(scope, Exit.void))) - : Effect.void, - ), - ), - ), - Effect.catchCause(() => Effect.void), - Effect.forkIn(tuisScope), - ) - const publicTui: Tui = { - ui: client.ui, - ...(client.recording === undefined ? {} : { recording: client.recording }), - close: () => release, - } - return publicTui - }), - ) - }) - - function launch(options?: TuiOptions): Effect.Effect - function launch(name: string, options?: TuiOptions): Effect.Effect - function launch(nameOrOptions: string | TuiOptions = {}, options: TuiOptions = {}) { - return typeof nameOrOptions === "string" - ? launchNamed(nameOrOptions, options) - : Ref.getAndUpdate(nextIdentity, (value) => value + 1).pipe( - Effect.flatMap((identity) => launchNamed(String(identity), nameOrOptions)), - ) - } - - const finishTimelines = yield* SharedEffect.make( - Effect.gen(function* () { - const active = yield* lock.withPermit( - Effect.sync(() => { - closed = true - return recordings - }), - ) - const finished = yield* Effect.forEach(active, (recording) => Effect.exit(recording.finishTimeline), { - concurrency: "unbounded", - }) - yield* Scope.close(tuisScope, Exit.void) - return { active, finished } - }), - ) - - const settle = Effect.fn("OpenCodeTuis.settle")(function* () { - const { active, finished } = yield* finishTimelines - const exported = yield* Effect.forEach( - active, - (recording, index) => - Exit.isSuccess(finished[index]!) - ? Effect.exit(recording.exportRecording).pipe( - Effect.map( - (result): Exit.Exit => result, - ), - ) - : Effect.succeed(Exit.succeed(undefined)), - { - concurrency: 2, - }, - ) - let failure: Cause.Cause | undefined - for (const result of [...finished, ...exported]) { - if (!Exit.isFailure(result)) continue - failure = failure === undefined ? result.cause : Cause.combine(failure, result.cause) - } - if (failure !== undefined) return yield* Effect.failCause(failure) - return exported.flatMap((result) => (Exit.isSuccess(result) && result.value !== undefined ? [result.value] : [])) - }) - - return { - launch, - unexpectedExit: Deferred.await(unexpectedExit), - compatibility: Effect.sync(() => compatibility), - settle, - } satisfies Control -}) - -export * as OpenCodeTui from "./client.js" diff --git a/packages/drive/src/driver/error.ts b/packages/drive/src/driver/error.ts deleted file mode 100644 index 39691c04543..00000000000 --- a/packages/drive/src/driver/error.ts +++ /dev/null @@ -1,14 +0,0 @@ -import * as Schema from "effect/Schema" - -export class OpenCodeDriverError extends Schema.TaggedErrorClass()("OpenCodeDriverError", { - operation: Schema.String, - message: Schema.String, -}) {} - -export const error = (operation: string, cause: unknown) => - cause instanceof OpenCodeDriverError - ? cause - : new OpenCodeDriverError({ - operation, - message: cause instanceof Error ? cause.message : String(cause), - }) diff --git a/packages/drive/src/driver/index.ts b/packages/drive/src/driver/index.ts deleted file mode 100644 index aaa92cc4d01..00000000000 --- a/packages/drive/src/driver/index.ts +++ /dev/null @@ -1,152 +0,0 @@ -import * as Effect from "effect/Effect" -import * as Cause from "effect/Cause" -import * as Exit from "effect/Exit" -import * as Layer from "effect/Layer" -import type * as Scope from "effect/Scope" -import * as NodeServices from "@effect/platform-node/NodeServices" -import * as OpenCodeInstance from "../instance/runtime.js" -import * as SimulationConnector from "../simulation/connector.js" -import type { OpenCodeConfig, OpenCodeTuiConfig, Project, Setup } from "../project.js" -import * as OpenCodeTui from "./client.js" -import type * as OpenCodeSdk from "./opencode.js" -import { error, type OpenCodeDriverError } from "./error.js" -import type { LlmControllerError, LlmSettlementError } from "./llm-controller.js" -import * as OpenCodeProject from "./project.js" -import * as PreparedDriver from "./prepared.js" -import * as OpenCodeServer from "./server.js" -import type * as OpenCodeUi from "./ui.js" -import type { Llm } from "./llm.js" -import type { RunReport } from "./report.js" -import * as ToolController from "../tool/controller.js" -import type * as Tool from "../tool/index.js" - -export interface Options { - readonly project?: Project - readonly config?: OpenCodeConfig - readonly tuiConfig?: OpenCodeTuiConfig - readonly setup?: Setup - readonly tools?: Tool.Configuration - readonly tui?: OpenCodeTui.TuiOptions - readonly opencode?: OpenCodeServer.Target - readonly keepArtifacts?: boolean -} - -export interface Driver { - /** Generated SDK client connected to this driver's private OpenCode service. */ - readonly opencode: OpenCodeSdk.OpenCode - readonly tui: OpenCodeTui.Tui - /** Convenience alias for the primary TUI's UI. */ - readonly ui: OpenCodeUi.Ui - readonly llm: Llm - /** Runtime controls for tools declared by name in the driver options. */ - readonly tools: Tool.Controls - readonly tuis: OpenCodeTui.Tuis - readonly artifacts: string - /** Validates queued LLM work, stops TUIs, and exports recordings. */ - readonly settle: () => Effect.Effect< - RunReport, - LlmControllerError | LlmSettlementError | OpenCodeDriverError | OpenCodeUi.OperationError - > -} - -const makeWithServices = Effect.fn("OpenCodeDriver.makeWithServices")(function* (options: Options = {}) { - const toolController = yield* ToolController.make(options.tools) - const project = yield* OpenCodeProject.make({ - project: options.project, - config: options.config, - tui: options.tuiConfig, - setup: ToolController.composeSetup(toolController, options.setup), - keepArtifacts: options.keepArtifacts, - }) - const instance = yield* OpenCodeInstance.make( - { - artifacts: project.artifacts, - name: `library-${crypto.randomUUID().slice(0, 12)}`, - scripted: true, - command: options.opencode?.command, - dev: options.opencode?.dev, - env: options.opencode?.env, - visible: options.opencode?.visible, - }, - toolController, - ).pipe(Effect.mapError((cause) => error("server.prepare", cause))) - const prepared = yield* PreparedDriver.makeWithServices(instance, { - visible: options.opencode?.visible, - tui: options.tui, - artifactsRetained: options.keepArtifacts ?? false, - compatibility: options.opencode?.compatibility, - }) - if (prepared.driver === undefined) return yield* Effect.die(new Error("automatic driver did not launch a TUI")) - return { driver: prepared.driver, failure: prepared.failure } -}) - -type MakeWithServices = ReturnType -const layer = Layer.merge(SimulationConnector.layer, NodeServices.layer) - -const makeManaged = ( - options: Options = {}, -): Effect.Effect, Effect.Error, Scope.Scope> => - makeWithServices(options).pipe(Effect.provide(layer)) - -export const make = (options: Options = {}) => makeManaged(options).pipe(Effect.map(({ driver }) => driver)) - -type Program = (driver: Driver) => Effect.Effect - -const runReport = (options: Options, f: Program) => - Effect.scoped( - Effect.uninterruptibleMask((restore) => - Effect.gen(function* () { - const { driver, failure } = yield* makeManaged(options) - const useExit = yield* Effect.exit(restore(Effect.raceFirst(f(driver), failure))) - const settlement = yield* Effect.exit(driver.settle()) - if (Exit.isFailure(useExit) && Exit.isFailure(settlement)) - return yield* Effect.failCause(Cause.combine(useExit.cause, settlement.cause)) - if (Exit.isFailure(useExit)) return yield* Effect.failCause(useExit.cause) - if (Exit.isFailure(settlement)) return yield* Effect.failCause(settlement.cause) - return { value: useExit.value, report: settlement.value } - }), - ), - ) - -export function useReport(f: Program): ReturnType> -export function useReport(options: Options, f: Program): ReturnType> -export function useReport(optionsOrProgram: Options | Program, program?: Program) { - if (typeof optionsOrProgram === "function") return runReport({}, optionsOrProgram) - if (program === undefined) return Effect.die(new Error("OpenCodeDriver.useReport requires a program")) - return runReport(optionsOrProgram, program) -} - -const run = (options: Options, program: Program) => - runReport(options, program).pipe(Effect.map(({ value }) => value)) - -export function use(f: Program): ReturnType> -export function use(options: Options, f: Program): ReturnType> -export function use(optionsOrProgram: Options | Program, program?: Program) { - return typeof optionsOrProgram === "function" - ? run({}, optionsOrProgram) - : program === undefined - ? Effect.die(new Error("OpenCodeDriver.use requires a program")) - : run(optionsOrProgram, program) -} - -export { OpenCodeDriverError } from "./error.js" -export { LlmControllerError, LlmModeError, LlmSettlementError } from "./llm-controller.js" -export { - UiCapabilityError, - UiElementAmbiguousError, - UiNodeAmbiguousError, - UiPredicateError, - UiScreenshotError, - UiTimeoutError, - UiWaitOptionsError, -} from "./ui.js" -export { SimulationRequestError } from "@opencode-ai/protocol/simulation" -export { SimulationCompatibilityError, SimulationConnectionError } from "../simulation/connector.js" -export type { CompatibilityPolicy, EndpointCompatibility } from "../simulation/connector.js" -export type { Recording, Tui, TuiLaunchError, TuiOptions, Tuis } from "./client.js" -export type { Llm } from "./llm.js" -export type { Target as OpenCodeTarget } from "./server.js" -export type { OpenCode } from "./opencode.js" -export type { ScreenshotError, Ui } from "./ui.js" -export type { Project, ProjectFileSystem, Setup, SetupContext } from "../project.js" -export * from "./report.js" diff --git a/packages/drive/src/driver/llm-controller.ts b/packages/drive/src/driver/llm-controller.ts deleted file mode 100644 index 17d0d8e326b..00000000000 --- a/packages/drive/src/driver/llm-controller.ts +++ /dev/null @@ -1,409 +0,0 @@ -import type * as Cause from "effect/Cause" -import * as Deferred from "effect/Deferred" -import * as Effect from "effect/Effect" -import * as Exit from "effect/Exit" -import * as FiberSet from "effect/FiberSet" -import * as Queue from "effect/Queue" -import * as Ref from "effect/Ref" -import * as Schema from "effect/Schema" -import * as Scope from "effect/Scope" -import * as Semaphore from "effect/Semaphore" -import * as Stream from "effect/Stream" -import * as Llm from "../llm/index.js" -import { isTitleRequest } from "../llm/internal.js" -import type { BackendConnection } from "../simulation/connector.js" -import { causeError, controllerError, LlmControllerError, LlmSettlementError } from "./llm-errors.js" -import * as LlmResponder from "./llm-responder.js" -import * as LlmState from "./llm-state.js" - -/** - * The concurrency shell of the LLM controller. Decision logic lives in the - * pure `llm-state.ts` module; wire streaming lives in `llm-responder.ts`. - * This module owns the lock, the state ref, job fibers, and deferreds. - */ - -export { LlmControllerError, LlmModeError, LlmSettlementError } from "./llm-errors.js" -export type { Response } from "./llm-responder.js" -export type { ServeHandler, TitleHandler } from "./llm-state.js" - -export interface Options { - /** Per-backend-RPC timeout in milliseconds. Defaults to 30,000. */ - readonly requestTimeout?: number - /** Time allowed for queued and active responses to settle. Defaults to 30,000. */ - readonly settlementTimeout?: number -} - -export interface Controller { - /** Attaches one backend generation while preserving response state. */ - readonly attach: (backend: BackendConnection) => Effect.Effect - readonly queue: (...output: ReadonlyArray) => Effect.Effect - readonly send: (...output: ReadonlyArray) => Effect.Effect - readonly serve: (handler: LlmState.ServeHandler) => Effect.Effect - readonly title: (handler: LlmState.TitleHandler) => Effect.Effect - readonly settle: () => Effect.Effect - /** Interrupts request routing and response workers. Used by the driver coordinator. */ - readonly shutdown: () => Effect.Effect - /** Fails when request routing or the backend connection fails. */ - readonly failure: Effect.Effect -} - -export interface Attachment { - readonly detach: () => Effect.Effect -} - -/** A committed normal job: its selection plus the shell-owned completion. */ -interface NormalJob extends LlmState.NormalStart { - readonly completion: LlmState.Completion -} - -const NonNegativeMilliseconds = Schema.Finite.check(Schema.isGreaterThanOrEqualTo(0)) -const decodeOutputs = Schema.decodeUnknownEffect(Schema.Array(Llm.Output)) - -export const make = Effect.fn("LlmController.make")(function* ( - backendOrOptions?: BackendConnection | Options, - explicitOptions?: Options, -) { - const initialBackend = isBackendConnection(backendOrOptions) ? backendOrOptions : undefined - const options = isBackendConnection(backendOrOptions) ? explicitOptions : backendOrOptions - const requestTimeout = NonNegativeMilliseconds.make(options?.requestTimeout ?? 30_000) - const settlementTimeout = NonNegativeMilliseconds.make(options?.settlementTimeout ?? 30_000) - const responder = LlmResponder.make({ requestTimeout }) - - const state = yield* Ref.make(LlmState.initial) - const lock = yield* Semaphore.make(1) - const changes = yield* Queue.sliding(1) - const failureSignal = yield* Deferred.make() - const tasks = yield* FiberSet.make() - const parentScope = yield* Scope.Scope - const attached = yield* Ref.make<{ readonly backend: BackendConnection; readonly scope: Scope.Scope } | undefined>( - undefined, - ) - - yield* Effect.addFinalizer(() => Queue.shutdown(changes)) - - const notify = Queue.offer(changes, undefined).pipe(Effect.asVoid) - - const respondTo = (request: LlmState.AttachedRequest, output: LlmResponder.Response) => - responder.respond(request.backend, request.request.id, output) - - const failCompletions = (completions: ReadonlyArray, error: LlmControllerError) => - Effect.forEach(completions, (completion) => Deferred.fail(completion, error), { discard: true }) - - /** Must run while holding the lock. */ - const recordFailureLocked = Effect.fn("LlmController.recordFailureLocked")(function* (error: LlmControllerError) { - const current = yield* Ref.get(state) - const [next, { failure, isFirst }] = LlmState.recordFailure(current, error) - yield* Ref.set(state, next) - if (isFirst) yield* Deferred.fail(failureSignal, failure) - yield* failCompletions(current.sendCompletions, failure) - yield* notify - return failure - }) - - const completeNormal = Effect.fn("LlmController.completeNormal")(function* ( - job: NormalJob, - error?: LlmControllerError, - ) { - const sendCompletion = LlmState.NormalSource.$is("Queued")(job.source) ? job.source.response.completed : undefined - yield* lock.withPermit( - Effect.gen(function* () { - yield* Ref.update(state, (current) => LlmState.finishNormal(current, job.completion, sendCompletion)) - if (error === undefined) { - yield* Deferred.succeed(job.completion, undefined) - if (sendCompletion !== undefined) yield* Deferred.succeed(sendCompletion, undefined) - } else { - yield* Deferred.fail(job.completion, error) - if (sendCompletion !== undefined) yield* Deferred.fail(sendCompletion, error) - yield* recordFailureLocked(error) - } - yield* notify - }), - ) - }) - - const runNormal = (job: NormalJob): Effect.Effect => { - const output = LlmState.NormalSource.$match(job.source, { - Queued: ({ response }) => respondTo(job.request, Stream.fromIterable(response.output)), - Served: ({ handler }) => Effect.suspend(() => respondTo(job.request, handler(job.request.request, job.index))), - }) - return Effect.matchCauseEffect(output, { - onFailure: (cause) => completeNormal(job, causeError("respond", cause, job.request.request.id)), - onSuccess: () => completeNormal(job), - }) - } - - /** Starts every runnable normal job. Must run while holding the lock. */ - const drainLocked = Effect.fn("LlmController.drainLocked")(function* () { - while (true) { - const current = yield* Ref.get(state) - const start = LlmState.nextNormal(current) - if (start === undefined) return - const completion = yield* Deferred.make() - yield* Ref.set(state, LlmState.startNormal(current, start, completion)) - yield* FiberSet.run(tasks, runNormal({ ...start, completion })) - yield* notify - } - }) - - const completeTitle = Effect.fn("LlmController.completeTitle")(function* ( - completion: LlmState.Completion, - error?: LlmControllerError, - ) { - yield* lock.withPermit( - Effect.gen(function* () { - yield* Ref.update(state, (current) => LlmState.finishTitle(current, completion)) - if (error === undefined) yield* Deferred.succeed(completion, undefined) - else { - yield* Deferred.fail(completion, error) - yield* recordFailureLocked(error) - } - yield* notify - }), - ) - }) - - /** Titles respond after in-flight normal jobs, outside request sequencing. */ - const startTitleLocked = Effect.fn("LlmController.startTitleLocked")(function* (request: LlmState.AttachedRequest) { - const completion = yield* Deferred.make() - const current = yield* Ref.get(state) - const [next, title] = LlmState.startTitle(current, completion) - yield* Ref.set(state, next) - const respond = Effect.gen(function* () { - yield* Effect.forEach(title.awaiting, Deferred.await, { discard: true }) - const text = yield* Effect.suspend(() => title.handler(request.request, title.index)) - yield* respondTo(request, Stream.make(Llm.text(text))) - }) - yield* FiberSet.run( - tasks, - Effect.matchCauseEffect(respond, { - onFailure: (cause) => completeTitle(completion, causeError("title", cause, request.request.id)), - onSuccess: () => completeTitle(completion), - }), - ) - yield* notify - }) - - const routeRequest = (request: LlmState.AttachedRequest) => - lock.withPermit( - Effect.gen(function* () { - const current = yield* Ref.get(state) - if (current.failure !== undefined || current.settled) return - if (isTitleRequest(request.request.body)) { - yield* startTitleLocked(request) - return - } - yield* Ref.set(state, LlmState.pushRequest(current, request)) - yield* drainLocked() - yield* notify - }), - ) - - const recordRouterFailure = (cause: Cause.Cause) => - lock.withPermit(recordFailureLocked(causeError("route requests", cause))).pipe(Effect.asVoid) - - const attach = Effect.fn("LlmController.attach")(function* (backend: BackendConnection) { - const scope = yield* lock.withPermit( - Effect.gen(function* () { - if ((yield* Ref.get(attached)) !== undefined) - return yield* Effect.fail(controllerError("attach", "LLM backend is already attached")) - const scope = yield* Scope.fork(parentScope) - yield* Ref.set(attached, { backend, scope }) - return scope - }), - ) - yield* backend.requests.pipe( - Stream.runForEach((request) => routeRequest({ request, backend })), - Effect.matchCauseEffect({ - onFailure: recordRouterFailure, - onSuccess: () => Effect.void, - }), - Effect.forkIn(scope), - ) - yield* backend.closed.pipe( - Effect.andThen( - lock.withPermit( - Effect.gen(function* () { - const active = yield* Ref.get(attached) - if (active?.backend !== backend) return - const current = yield* Ref.get(state) - if (current.settled) return - yield* recordFailureLocked(controllerError("backend", "backend connection closed")) - }), - ), - ), - Effect.forkIn(scope), - ) - const detach = Effect.fn("LlmController.detach")(function* () { - const shouldClose = yield* lock.withPermit( - Effect.gen(function* () { - const active = yield* Ref.get(attached) - if (active?.backend !== backend) return false - yield* Ref.set(attached, undefined) - return true - }), - ) - if (shouldClose) yield* Scope.close(scope, Exit.void) - }) - return { detach } satisfies Attachment - }) - - const enqueue = Effect.fn("LlmController.enqueue")(function* ( - operation: "queue" | "send", - output: ReadonlyArray, - completed?: LlmState.Completion, - ) { - const decoded = yield* decodeOutputs(output).pipe(Effect.mapError((cause) => controllerError(operation, cause))) - yield* lock.withPermit( - Effect.gen(function* () { - const current = yield* Ref.get(state) - const rejection = LlmState.rejectEnqueue(current, operation) - if (rejection !== undefined) return yield* Effect.fail(rejection) - yield* Ref.set(state, LlmState.enqueue(current, { output: decoded, completed })) - yield* drainLocked() - yield* notify - return undefined - }), - ) - }) - - const queue = Effect.fn("LlmController.queue")((...output: ReadonlyArray) => enqueue("queue", output)) - - const send = Effect.fn("LlmController.send")(function* (...output: ReadonlyArray) { - const completed = yield* Deferred.make() - yield* enqueue("send", output, completed) - yield* Deferred.await(completed).pipe( - Effect.onInterrupt(() => - lock.withPermit( - Effect.gen(function* () { - yield* Ref.update(state, (current) => LlmState.abandonSend(current, completed)) - yield* notify - }), - ), - ), - ) - }) - - const serve = Effect.fn("LlmController.serve")((handler: LlmState.ServeHandler) => - lock.withPermit( - Effect.gen(function* () { - const current = yield* Ref.get(state) - const rejection = LlmState.rejectServe(current) - if (rejection !== undefined) return yield* Effect.fail(rejection) - yield* Ref.set(state, LlmState.serve(current, handler)) - yield* drainLocked() - yield* notify - return undefined - }), - ), - ) - - const title = Effect.fn("LlmController.title")((handler: LlmState.TitleHandler) => - lock.withPermit( - Effect.gen(function* () { - const current = yield* Ref.get(state) - const rejection = LlmState.rejectTitle(current) - if (rejection !== undefined) return yield* Effect.fail(rejection) - yield* Ref.set(state, LlmState.configureTitle(current, handler)) - yield* notify - return undefined - }), - ), - ) - - const inspectSettlement = lock.withPermit( - Effect.gen(function* () { - const current = yield* Ref.get(state) - const settlement = LlmState.inspectSettlement(current) - if (LlmState.Settlement.$is("Done")(settlement)) yield* Ref.set(state, LlmState.markSettled(current)) - return settlement - }), - ) - - const awaitSettlement = (): Effect.Effect => - Effect.suspend(() => - Effect.flatMap( - inspectSettlement, - LlmState.Settlement.$match({ - Done: () => Effect.void, - Fail: ({ error }) => Effect.fail(error), - Wait: () => Effect.andThen(Queue.take(changes), awaitSettlement()), - }), - ), - ) - - const failSettlementTimeout = lock.withPermit( - Effect.gen(function* () { - const current = yield* Ref.get(state) - const error = LlmState.settlementTimeoutError(current) - const failure = controllerError("settle", error) - yield* Ref.set( - state, - LlmState.markSettled({ - ...current, - failure: current.failure ?? failure, - }), - ) - yield* failCompletions(current.sendCompletions, failure) - yield* notify - return error - }), - ) - - const settle = Effect.fn("LlmController.settle")(function* () { - yield* Effect.yieldNow - yield* lock.withPermit( - Effect.gen(function* () { - yield* Ref.update(state, LlmState.beginSettling) - yield* drainLocked() - yield* notify - }), - ) - yield* awaitSettlement().pipe( - Effect.timeoutOrElse({ - duration: settlementTimeout, - orElse: () => Effect.flatMap(failSettlementTimeout, Effect.fail), - }), - Effect.tapError((error) => (error instanceof LlmSettlementError ? FiberSet.clear(tasks) : Effect.void)), - ) - }) - - const shutdown = Effect.fn("LlmController.shutdown")(function* () { - const active = yield* Ref.get(attached) - if (active !== undefined) { - yield* Ref.set(attached, undefined) - yield* Scope.close(active.scope, Exit.void) - } - yield* lock.withPermit( - Effect.gen(function* () { - const current = yield* Ref.get(state) - const failure = current.failure ?? controllerError("shutdown", "LLM controller is closed") - yield* Ref.set(state, LlmState.close(current, failure)) - yield* failCompletions(current.sendCompletions, failure) - yield* notify - }), - ) - yield* FiberSet.clear(tasks) - }) - - if (initialBackend !== undefined) yield* attach(initialBackend) - - return { - attach, - queue, - send, - serve, - title, - settle, - shutdown, - failure: Deferred.await(failureSignal), - } satisfies Controller -}) - -/** Builds a response stream from output values. */ -export const response = (...output: ReadonlyArray): LlmResponder.Response => Stream.fromIterable(output) - -function isBackendConnection(value: BackendConnection | Options | undefined): value is BackendConnection { - return value !== undefined && "rpc" in value -} - -export * as LlmController from "./llm-controller.js" diff --git a/packages/drive/src/driver/llm-errors.ts b/packages/drive/src/driver/llm-errors.ts deleted file mode 100644 index 94de97902d2..00000000000 --- a/packages/drive/src/driver/llm-errors.ts +++ /dev/null @@ -1,41 +0,0 @@ -import * as Cause from "effect/Cause" -import * as Option from "effect/Option" -import * as Schema from "effect/Schema" - -/** Rejection of an LLM control call made in an incompatible response mode. */ -export class LlmModeError extends Schema.TaggedErrorClass()("LlmModeError", { - operation: Schema.Literals(["queue", "send", "serve", "title"]), - message: Schema.String, -}) {} - -/** Failure of an LLM controller operation or its backend connection. */ -export class LlmControllerError extends Schema.TaggedErrorClass()("LlmControllerError", { - operation: Schema.String, - requestId: Schema.optionalKey(Schema.String), - message: Schema.String, -}) {} - -/** Settlement ended with unused responses or unexpected requests. */ -export class LlmSettlementError extends Schema.TaggedErrorClass()("LlmSettlementError", { - unusedResponses: Schema.Number, - unexpectedRequests: Schema.Number, - message: Schema.String, -}) {} - -/** Coerces any cause into an `LlmControllerError`, preserving existing ones. */ -export const controllerError = (operation: string, cause: unknown, requestId?: string): LlmControllerError => { - if (cause instanceof LlmControllerError) return cause - return new LlmControllerError({ - operation, - ...(requestId === undefined ? {} : { requestId }), - message: cause instanceof Error ? cause.message : String(cause), - }) -} - -/** Extracts the most useful failure from a cause and coerces it. */ -export const causeError = (operation: string, cause: Cause.Cause, requestId?: string): LlmControllerError => { - const failure = Cause.findErrorOption(cause) - return Option.isSome(failure) - ? controllerError(operation, failure.value, requestId) - : controllerError(operation, Cause.squash(cause), requestId) -} diff --git a/packages/drive/src/driver/llm-responder.ts b/packages/drive/src/driver/llm-responder.ts deleted file mode 100644 index a5c12dc037e..00000000000 --- a/packages/drive/src/driver/llm-responder.ts +++ /dev/null @@ -1,235 +0,0 @@ -import * as Effect from "effect/Effect" -import * as Exit from "effect/Exit" -import * as Schema from "effect/Schema" -import * as Stream from "effect/Stream" -import * as Llm from "../llm/index.js" -import { chunkText } from "../llm/internal.js" -import { supportsCapability, type BackendConnection } from "../simulation/connector.js" -import { controllerError, LlmControllerError } from "./llm-errors.js" - -/** - * The wire layer of the LLM controller: plays one `Response` stream onto a - * backend connection as `llm.chunk` / `llm.finish` / `llm.disconnect` RPCs, - * chunking text with optional pacing and guaranteeing a terminal event. - */ - -/** A stream of simulated model output for one LLM exchange. */ -export type Response = Stream.Stream - -export interface Options { - /** Per-backend-RPC timeout in milliseconds. */ - readonly requestTimeout: number -} - -export interface Responder { - /** Plays one response for one exchange, guaranteeing a terminal event. */ - readonly respond: ( - backend: BackendConnection, - requestId: string, - output: Response, - ) => Effect.Effect -} - -class InvocationTerminated extends Schema.TaggedErrorClass()("InvocationTerminated", {}) {} - -const decodeOutput = Schema.decodeUnknownEffect(Llm.Output) - -export const make = ({ requestTimeout }: Options): Responder => { - const call = ( - backend: BackendConnection, - operation: string, - requestId: string, - effect: Effect.Effect, - ): Effect.Effect => - Effect.timeoutOrElse(effect, { - duration: requestTimeout, - orElse: () => - Effect.fail( - new LlmControllerError({ - operation, - requestId, - message: `${operation} timed out after ${requestTimeout}ms`, - }), - ), - }).pipe( - Effect.catch((error) => classifyWriteFailure(backend, requestId, error)), - Effect.mapError((cause) => - cause instanceof InvocationTerminated ? cause : controllerError(operation, cause, requestId), - ), - ) - - const classifyWriteFailure = ( - backend: BackendConnection, - requestId: string, - error: E, - ): Effect.Effect => - Effect.gen(function* () { - if (!supportsCapability(backend.compatibility, "llm.pending")) return yield* Effect.fail(error) - const pending = yield* Effect.exit(backend.rpc["llm.pending"]().pipe(Effect.timeout(requestTimeout))) - if (Exit.isFailure(pending)) return yield* Effect.fail(error) - if (pending.value.invocations.some((invocation) => invocation.id === requestId)) return yield* Effect.fail(error) - return yield* Effect.fail(new InvocationTerminated()) - }) - - const streamDelta = Effect.fn("LlmResponder.streamDelta")(function* ( - backend: BackendConnection, - id: string, - type: "textDelta" | "reasoningDelta", - text: string, - options: Llm.StreamOptions | undefined, - ) { - const delay = options?.delay ?? 2 - const chunkSize = options?.chunkSize ?? 15 - const chunks = [...chunkText(text, chunkSize)] - for (let index = 0; index < chunks.length; index++) { - const chunk = chunks[index] - if (chunk === undefined) continue - yield* call(backend, "llm.chunk", id, backend.rpc["llm.chunk"]({ id, items: [{ type, text: chunk }] })) - if (index < chunks.length - 1 && delay > 0) yield* Effect.sleep(delay) - } - }) - - const streamToolCall = Effect.fn("LlmResponder.streamToolCall")(function* ( - backend: BackendConnection, - requestId: string, - toolCall: Llm.ToolCall, - ) { - const delay = toolCall.options?.delay ?? 2 - const chunkSize = toolCall.options?.chunkSize ?? 15 - const chunks = [...chunkText(JSON.stringify(toolCall.input), chunkSize)] - const providerNeutral = supportsCapability(backend.compatibility, "llm.tool-input-delta") - if (providerNeutral) - yield* call( - backend, - "llm.chunk", - requestId, - backend.rpc["llm.chunk"]({ - id: requestId, - items: [ - { - type: "toolInputStart", - index: toolCall.index, - id: toolCall.id, - name: toolCall.name, - }, - ], - }), - ) - for (let index = 0; index < chunks.length; index++) { - const text = chunks[index] - if (text === undefined) continue - const item = providerNeutral - ? { type: "toolInputDelta" as const, index: toolCall.index, text } - : { - type: "raw" as const, - chunk: { - choices: [ - { - delta: { - tool_calls: [ - index === 0 - ? { - index: toolCall.index, - id: toolCall.id, - function: { name: toolCall.name, arguments: text }, - } - : { - index: toolCall.index, - function: { arguments: text }, - }, - ], - }, - }, - ], - }, - } - yield* call( - backend, - "llm.chunk", - requestId, - backend.rpc["llm.chunk"]({ - id: requestId, - items: [item], - }), - ) - if (index < chunks.length - 1 && delay > 0) yield* Effect.sleep(delay) - } - }) - - const respond = Effect.fn("LlmResponder.respond")(function* ( - backend: BackendConnection, - requestId: string, - output: Response, - ) { - let terminal = false - yield* output.pipe( - Stream.mapEffect((value) => decodeOutput(value)), - Stream.runForEach((item) => { - if (terminal) - return Effect.fail( - new LlmControllerError({ - operation: "respond", - requestId, - message: `LLM response ${requestId} emitted output after its terminal event`, - }), - ) - switch (item.type) { - case "finish": - terminal = true - return call( - backend, - "llm.finish", - requestId, - backend.rpc["llm.finish"]({ - id: requestId, - ...(item.reason === undefined ? {} : { reason: item.reason }), - }), - ).pipe(Effect.asVoid) - case "disconnect": - terminal = true - return call(backend, "llm.disconnect", requestId, backend.rpc["llm.disconnect"]({ id: requestId })).pipe( - Effect.asVoid, - ) - case "text": - return streamDelta(backend, requestId, "textDelta", item.text, item.options) - case "reasoning": - return streamDelta(backend, requestId, "reasoningDelta", item.text, item.options) - case "pause": - return item.milliseconds === 0 ? Effect.void : Effect.sleep(item.milliseconds) - case "toolCall": { - if (item.options !== undefined) return streamToolCall(backend, requestId, item) - const { options: _, ...toolCall } = item - return call( - backend, - "llm.chunk", - requestId, - backend.rpc["llm.chunk"]({ - id: requestId, - items: [toolCall], - }), - ).pipe(Effect.asVoid) - } - case "raw": - return call( - backend, - "llm.chunk", - requestId, - backend.rpc["llm.chunk"]({ id: requestId, items: [item] }), - ).pipe(Effect.asVoid) - } - return Effect.void - }), - Effect.catchTag("InvocationTerminated", () => { - terminal = true - return Effect.void - }), - Effect.mapError((cause) => controllerError("respond", cause, requestId)), - ) - if (!terminal) - yield* call(backend, "llm.finish", requestId, backend.rpc["llm.finish"]({ id: requestId, reason: "stop" })).pipe( - Effect.catchTag("InvocationTerminated", () => Effect.void), - ) - }) - - return { respond } -} diff --git a/packages/drive/src/driver/llm-state.ts b/packages/drive/src/driver/llm-state.ts deleted file mode 100644 index e8513a6ea23..00000000000 --- a/packages/drive/src/driver/llm-state.ts +++ /dev/null @@ -1,299 +0,0 @@ -import * as Data from "effect/Data" -import type * as Deferred from "effect/Deferred" -import * as Effect from "effect/Effect" -import type { Backend } from "../client/protocol.js" -import type * as Llm from "../llm/index.js" -import type { BackendConnection } from "../simulation/connector.js" -import { controllerError, LlmControllerError, LlmModeError, LlmSettlementError } from "./llm-errors.js" -import type { Response } from "./llm-responder.js" - -/** - * Pure state and transitions for the LLM controller. The shell in - * `llm-controller.ts` owns all concurrency: it holds the lock, creates - * completions, runs jobs, and resolves deferreds. Completions appear here - * only as opaque tokens tracked for membership — nothing in this module - * awaits or completes them. - */ - -/** Opaque token for one in-flight job, resolved by the shell. */ -export type Completion = Deferred.Deferred - -export type ServeHandler = (request: Backend.ProviderInvocation, index: number) => Response - -export type TitleHandler = ( - request: Backend.ProviderInvocation, - index: number, -) => Effect.Effect - -export interface QueuedResponse { - readonly output: ReadonlyArray - readonly completed?: Completion -} - -export interface AttachedRequest { - readonly request: Backend.ProviderInvocation - readonly backend: BackendConnection -} - -/** How the controller answers normal (non-title) requests. */ -export type Mode = Data.TaggedEnum<{ - Unset: {} - Queue: {} - Serve: { readonly handler: ServeHandler } -}> -export const Mode = Data.taggedEnum() - -export interface State { - readonly mode: Mode - readonly titleHandler: TitleHandler - readonly titleConfigured: boolean - readonly requests: ReadonlyArray - readonly responses: ReadonlyArray - readonly activeNormal: ReadonlyArray - readonly activeTitles: ReadonlyArray - readonly sendCompletions: ReadonlyArray - readonly requestIndex: number - readonly titleIndex: number - readonly failure: LlmControllerError | undefined - readonly settling: boolean - readonly settled: boolean -} - -export const initial: State = { - mode: Mode.Unset(), - titleHandler: () => Effect.succeed("OpenCode Drive"), - titleConfigured: false, - requests: [], - responses: [], - activeNormal: [], - activeTitles: [], - sendCompletions: [], - requestIndex: 0, - titleIndex: 0, - failure: undefined, - settling: false, - settled: false, -} - -// ─── Guards ────────────────────────────────────────────────────────────────── - -/** Why a control call (queue/send/serve/title) was rejected. */ -export type RejectionError = LlmModeError | LlmControllerError - -const rejectWhileSettling = (state: State, operation: string) => - state.settling || state.settled ? controllerError(operation, "LLM controller is settling") : undefined - -/** Why a queue/send call must be rejected, or undefined to proceed. */ -export const rejectEnqueue = (state: State, operation: "queue" | "send"): RejectionError | undefined => { - if (state.failure !== undefined) return state.failure - if (Mode.$is("Serve")(state.mode)) - return new LlmModeError({ - operation, - message: `llm.${operation} cannot be used after llm.serve`, - }) - return rejectWhileSettling(state, operation) -} - -/** Why a serve call must be rejected, or undefined to proceed. */ -export const rejectServe = (state: State): RejectionError | undefined => { - if (state.failure !== undefined) return state.failure - if (!Mode.$is("Unset")(state.mode)) - return new LlmModeError({ - operation: "serve", - message: "llm.serve must be the only LLM response mode", - }) - return rejectWhileSettling(state, "serve") -} - -/** Why a title call must be rejected, or undefined to proceed. */ -export const rejectTitle = (state: State): RejectionError | undefined => { - if (state.failure !== undefined) return state.failure - if (state.titleConfigured) - return new LlmModeError({ - operation: "title", - message: "llm.title may only be configured once", - }) - return rejectWhileSettling(state, "title") -} - -// ─── Transitions ───────────────────────────────────────────────────────────── - -export const enqueue = (state: State, response: QueuedResponse): State => ({ - ...state, - mode: Mode.Queue(), - responses: [...state.responses, response], - sendCompletions: - response.completed === undefined ? state.sendCompletions : [...state.sendCompletions, response.completed], -}) - -export const serve = (state: State, handler: ServeHandler): State => ({ - ...state, - mode: Mode.Serve({ handler }), -}) - -export const configureTitle = (state: State, handler: TitleHandler): State => ({ - ...state, - titleConfigured: true, - titleHandler: handler, -}) - -export const pushRequest = (state: State, request: AttachedRequest): State => ({ - ...state, - requests: [...state.requests, request], -}) - -/** Withdraws an interrupted send before it was matched to a request. */ -export const abandonSend = (state: State, completed: Completion): State => ({ - ...state, - responses: state.responses.filter((response) => response.completed !== completed), - sendCompletions: state.sendCompletions.filter((candidate) => candidate !== completed), -}) - -/** Records the first failure; later failures preserve the original. */ -export const recordFailure = ( - state: State, - error: LlmControllerError, -): readonly [State, { readonly failure: LlmControllerError; readonly isFirst: boolean }] => { - const failure = state.failure ?? error - const isFirst = state.failure === undefined - return [isFirst ? { ...state, failure } : state, { failure, isFirst }] -} - -// ─── Normal jobs ───────────────────────────────────────────────────────────── - -/** Where a normal job's response comes from. */ -export type NormalSource = Data.TaggedEnum<{ - Queued: { readonly response: QueuedResponse } - Served: { readonly handler: ServeHandler } -}> -export const NormalSource = Data.taggedEnum() - -/** A runnable normal job selected by {@link nextNormal}. */ -export interface NormalStart { - readonly request: AttachedRequest - readonly index: number - readonly source: NormalSource -} - -/** Selects the next runnable normal job, or undefined when nothing can run. */ -export const nextNormal = (state: State): NormalStart | undefined => { - if (state.failure !== undefined) return undefined - const request = state.requests[0] - if (request === undefined) return undefined - if (Mode.$is("Serve")(state.mode)) - return { - request, - index: state.requestIndex, - source: NormalSource.Served({ handler: state.mode.handler }), - } - const response = state.responses[0] - if (response === undefined) return undefined - return { - request, - index: state.requestIndex, - source: NormalSource.Queued({ response }), - } -} - -/** Commits a selected job: consumes its inputs and tracks its completion. */ -export const startNormal = (state: State, start: NormalStart, completion: Completion): State => ({ - ...state, - requests: state.requests.slice(1), - responses: NormalSource.$is("Queued")(start.source) ? state.responses.slice(1) : state.responses, - activeNormal: [...state.activeNormal, completion], - requestIndex: state.requestIndex + 1, -}) - -/** Untracks a finished normal job and its optional send completion. */ -export const finishNormal = (state: State, completion: Completion, sendCompletion: Completion | undefined): State => ({ - ...state, - activeNormal: state.activeNormal.filter((active) => active !== completion), - sendCompletions: - sendCompletion === undefined - ? state.sendCompletions - : state.sendCompletions.filter((active) => active !== sendCompletion), -}) - -// ─── Title jobs ────────────────────────────────────────────────────────────── - -/** A title job selected by {@link startTitle}. */ -export interface TitleStart { - readonly handler: TitleHandler - readonly index: number - /** Normal jobs the title must wait for before responding. */ - readonly awaiting: ReadonlyArray -} - -/** Tracks a title job; titles run outside normal request sequencing. */ -export const startTitle = (state: State, completion: Completion): readonly [State, TitleStart] => [ - { - ...state, - activeTitles: [...state.activeTitles, completion], - titleIndex: state.titleIndex + 1, - }, - { - handler: state.titleHandler, - index: state.titleIndex, - awaiting: state.activeNormal, - }, -] - -export const finishTitle = (state: State, completion: Completion): State => ({ - ...state, - activeTitles: state.activeTitles.filter((active) => active !== completion), -}) - -// ─── Settlement ────────────────────────────────────────────────────────────── - -export type Settlement = Data.TaggedEnum<{ - /** All work has drained; the controller is settled. */ - Done: {} - /** Queued or active work remains; wait for the next change. */ - Wait: {} - Fail: { readonly error: LlmControllerError | LlmSettlementError } -}> -export const Settlement = Data.taggedEnum() - -/** Decides whether settlement is complete, failed, or must keep waiting. */ -export const inspectSettlement = (state: State): Settlement => { - if (state.failure !== undefined) return Settlement.Fail({ error: state.failure }) - if (Mode.$is("Queue")(state.mode) && state.requests.length > 0 && state.responses.length === 0) - return Settlement.Fail({ - error: new LlmSettlementError({ - unusedResponses: 0, - unexpectedRequests: state.requests.length, - message: `received ${state.requests.length} unexpected LLM request(s)`, - }), - }) - if (state.responses.length > 0 || state.activeNormal.length > 0 || state.activeTitles.length > 0) - return Settlement.Wait() - return Settlement.Done() -} - -/** The error reported when settlement times out. */ -export const settlementTimeoutError = (state: State): LlmSettlementError => - new LlmSettlementError({ - unusedResponses: state.responses.length, - unexpectedRequests: state.requests.length, - message: - state.responses.length > 0 - ? `timed out with ${state.responses.length} unused LLM response(s)` - : "timed out waiting for active LLM responses", - }) - -export const beginSettling = (state: State): State => (state.settling ? state : { ...state, settling: true }) - -export const markSettled = (state: State): State => ({ - ...state, - settled: true, -}) - -/** Terminal shutdown: pending work is discarded and future calls fail. */ -export const close = (state: State, failure: LlmControllerError): State => ({ - ...state, - requests: [], - responses: [], - failure, - settling: true, - settled: true, -}) diff --git a/packages/drive/src/driver/llm.ts b/packages/drive/src/driver/llm.ts deleted file mode 100644 index 37bf755bff6..00000000000 --- a/packages/drive/src/driver/llm.ts +++ /dev/null @@ -1,9 +0,0 @@ -import type * as OpenCodeServer from "./server.js" - -/** Live control over the simulated model shared by every connected TUI. */ -export interface Llm { - readonly queue: OpenCodeServer.Server["llm"]["queue"] - readonly send: OpenCodeServer.Server["llm"]["send"] - readonly serve: OpenCodeServer.Server["llm"]["serve"] - readonly title: OpenCodeServer.Server["llm"]["title"] -} diff --git a/packages/drive/src/driver/opencode.ts b/packages/drive/src/driver/opencode.ts deleted file mode 100644 index 54851f162c2..00000000000 --- a/packages/drive/src/driver/opencode.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { join } from "node:path" -import * as NodeFileSystem from "@effect/platform-node/NodeFileSystem" -import { OpenCode as OpenCodeService, type OpenCodeClient } from "@opencode-ai/client/effect" -import * as Service from "@opencode-ai/client/effect/service" -import * as Effect from "effect/Effect" -import * as FileSystem from "effect/FileSystem" -import { FetchHttpClient, HttpClient, HttpClientRequest } from "effect/unstable/http" -import { error, type OpenCodeDriverError } from "./error.js" - -export type OpenCode = OpenCodeClient - -const makeWithServices = Effect.fn("OpenCode.make")(function* (artifacts: string) { - const state = join(artifacts, "home", ".local", "state", "opencode") - const fs = yield* FileSystem.FileSystem - const discovered = yield* fs.readDirectory(state).pipe(Effect.catch(() => Effect.succeed([]))) - const names = [ - "service-local.json", - "service.json", - ...discovered - .filter((name) => /^service-[^.]+\.json$/.test(name)) - .sort() - .filter((name) => name !== "service-local.json"), - ] - let endpoint: Service.Endpoint | undefined - for (const name of names) { - endpoint = yield* Service.discover({ file: join(state, name) }) - if (endpoint !== undefined) break - } - if (endpoint === undefined) - return yield* Effect.fail(error("opencode.connect", "OpenCode service registration was not found")) - - return yield* Effect.gen(function* () { - const base = yield* HttpClient.HttpClient - const located = base.pipe( - HttpClient.mapRequest( - HttpClientRequest.setHeader("x-opencode-directory", encodeURIComponent(join(artifacts, "files"))), - ), - ) - const http = - endpoint.auth === undefined - ? located - : located.pipe( - HttpClient.mapRequest(HttpClientRequest.basicAuth(endpoint.auth.username, endpoint.auth.password)), - ) - return yield* OpenCodeService.make({ baseUrl: endpoint.url }).pipe( - Effect.provideService(HttpClient.HttpClient, http), - ) - }).pipe( - Effect.provide(FetchHttpClient.layer), - Effect.mapError((cause) => error("opencode.connect", cause)), - ) -}) - -export const make = (artifacts: string): Effect.Effect => - makeWithServices(artifacts).pipe(Effect.provide(NodeFileSystem.layer)) diff --git a/packages/drive/src/driver/prepared.ts b/packages/drive/src/driver/prepared.ts deleted file mode 100644 index 2cec8413117..00000000000 --- a/packages/drive/src/driver/prepared.ts +++ /dev/null @@ -1,121 +0,0 @@ -import * as Cause from "effect/Cause" -import * as Effect from "effect/Effect" -import * as Exit from "effect/Exit" -import * as OpenCodeInstance from "../instance/runtime.js" -import * as SimulationConnector from "../simulation/connector.js" -import * as OpenCodeTui from "./client.js" -import { error, type OpenCodeDriverError } from "./error.js" -import type { Driver, Llm } from "./index.js" -import type { LlmControllerError, LlmSettlementError } from "./llm-controller.js" -import * as OpenCodeServer from "./server.js" -import * as SharedEffect from "./shared.js" -import type * as OpenCodeUi from "./ui.js" -import { decodeRunReport } from "./report.js" - -export interface Options { - readonly visible?: boolean - readonly tui?: OpenCodeTui.TuiOptions - readonly launch?: "automatic" | "manual" - readonly tuiName?: string - readonly artifactsRetained?: boolean - readonly compatibility?: SimulationConnector.CompatibilityPolicy -} - -export interface Prepared { - readonly driver: Driver | undefined - readonly primary: OpenCodeTui.Tui | undefined - readonly llm: Llm - readonly tools: Driver["tools"] - readonly tuis: OpenCodeTui.Tuis - readonly server: Pick - readonly artifacts: string - readonly settle: Driver["settle"] - readonly failure: Effect.Effect - readonly unexpectedTuiExit: OpenCodeTui.Control["unexpectedExit"] -} - -export const makeWithServices = Effect.fn("OpenCodeDriver.makePreparedWithServices")(function* ( - instance: OpenCodeInstance.Instance, - options: Options, -) { - const server = yield* OpenCodeServer.make({ - instance, - target: { - visible: options.visible, - compatibility: options.compatibility, - }, - }) - const opencode = (options.launch ?? "automatic") === "automatic" ? yield* server.launch() : undefined - const primary = - (options.launch ?? "automatic") === "automatic" - ? options.tuiName === undefined - ? yield* server.tuis.launch(options.tui) - : yield* server.tuis.launch(options.tuiName, options.tui) - : undefined - const complete = (tuis: Effect.Effect, OpenCodeDriverError | OpenCodeUi.OperationError>) => - Effect.gen(function* () { - const llm = yield* Effect.exit(server.llm.settle()) - const tools = yield* Effect.exit( - server.settleTools.pipe(Effect.mapError((cause) => error("tools.settle", cause))), - ) - const shutdown = yield* Effect.exit(server.llm.shutdown()) - const tuiExit = yield* Effect.exit(tuis) - let failure: - | Cause.Cause - | undefined - if (Exit.isFailure(llm)) failure = llm.cause - if (Exit.isFailure(tools)) failure = failure === undefined ? tools.cause : Cause.combine(failure, tools.cause) - if (Exit.isFailure(shutdown)) - failure = failure === undefined ? shutdown.cause : Cause.combine(failure, shutdown.cause) - if (Exit.isFailure(tuiExit)) - failure = failure === undefined ? tuiExit.cause : Cause.combine(failure, tuiExit.cause) - if (failure !== undefined) return yield* Effect.failCause(failure) - const compatibility = [...(yield* server.compatibility), ...(yield* server.tuis.compatibility)] - const recordings = Exit.isSuccess(tuiExit) ? tuiExit.value : [] - const report = yield* decodeRunReport({ - artifacts: instance.artifacts, - retained: options.artifactsRetained ?? true, - recordings, - compatibility, - }).pipe(Effect.mapError((cause) => error("report.make", cause))) - return report - }) - const settle = yield* SharedEffect.make(complete(server.tuis.settle())) - yield* Effect.addFinalizer(() => server.llm.shutdown()) - const llm: Llm = server.llm - const driver: Driver | undefined = - primary === undefined || opencode === undefined - ? undefined - : { - opencode, - tui: primary, - ui: primary.ui, - llm, - tools: server.tools, - tuis: server.tuis, - artifacts: instance.artifacts, - settle: () => settle, - } - return { - driver, - primary, - llm, - tools: server.tools, - tuis: server.tuis, - server, - artifacts: instance.artifacts, - settle: () => settle, - failure: Effect.raceFirst( - server.failure, - server.tuis.unexpectedExit.pipe( - Effect.flatMap(({ name, status }) => - Effect.fail(error("tui.exit", `OpenCode TUI "${name}" exited with status ${status}`)), - ), - ), - ), - unexpectedTuiExit: server.tuis.unexpectedExit, - } satisfies Prepared -}) - -export const make = (instance: OpenCodeInstance.Instance, options: Options) => - makeWithServices(instance, options).pipe(Effect.provide(SimulationConnector.layer)) diff --git a/packages/drive/src/driver/project.ts b/packages/drive/src/driver/project.ts deleted file mode 100644 index 95dfe035d0f..00000000000 --- a/packages/drive/src/driver/project.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { rm } from "node:fs/promises" -import * as Effect from "effect/Effect" -import { initializeInstance, prepareInstanceProject } from "../instance/instance.js" -import type { OpenCodeConfig, OpenCodeTuiConfig, Project as ProjectDefinition, Setup } from "../project.js" -import { error } from "./error.js" - -export interface Options { - readonly project?: ProjectDefinition - readonly config?: OpenCodeConfig - readonly tui?: OpenCodeTuiConfig - readonly setup?: Setup - /** Retain the isolated artifact directory after the scope closes. */ - readonly keepArtifacts?: boolean -} - -export interface Project { - readonly artifacts: string -} - -export const make = Effect.fn("OpenCodeProject.make")(function* (options: Options = {}) { - const artifacts = yield* Effect.acquireRelease( - Effect.tryPromise({ - try: () => initializeInstance(), - catch: (cause) => error("project.initialize", cause), - }), - (directory) => - options.keepArtifacts - ? Effect.void - : Effect.tryPromise({ - try: () => rm(directory, { recursive: true, force: true }), - catch: () => undefined, - }).pipe(Effect.ignore), - ) - yield* prepareInstanceProject({ - artifacts, - project: options.project, - config: options.config, - tui: options.tui, - setup: options.setup, - }).pipe(Effect.mapError((cause) => error("project.prepare", cause))) - return { artifacts } -}) - -export * as OpenCodeProject from "./project.js" diff --git a/packages/drive/src/driver/report.ts b/packages/drive/src/driver/report.ts deleted file mode 100644 index bcfde28a7c5..00000000000 --- a/packages/drive/src/driver/report.ts +++ /dev/null @@ -1,30 +0,0 @@ -import * as Schema from "effect/Schema" -import { EndpointCompatibility } from "../simulation/connector.js" - -const absolutePathCheck = Schema.makeFilter((path) => isAbsolutePath(path), { - expected: "an absolute POSIX or Windows path without NUL bytes", -}) - -/** A fully rooted POSIX or Windows filesystem path. */ -export const AbsolutePath = Schema.String.check(absolutePathCheck).pipe(Schema.brand("OpenCodeDrive.AbsolutePath")) -export type AbsolutePath = typeof AbsolutePath.Type - -/** The compact evidence returned after a Drive run settles. */ -export const RunReport = Schema.Struct({ - artifacts: AbsolutePath, - retained: Schema.Boolean, - recordings: Schema.Array(AbsolutePath), - compatibility: Schema.Array(EndpointCompatibility), -}) -export interface RunReport extends Schema.Schema.Type {} - -export const decodeAbsolutePath = Schema.decodeUnknownEffect(AbsolutePath) -export const decodeRunReport = Schema.decodeUnknownEffect(RunReport) - -function isAbsolutePath(path: string): boolean { - if (path.length === 0 || path.includes("\0")) return false - if (path.startsWith("/")) return true - if (/^[A-Za-z]:[\\/]/.test(path)) return true - if (/^\\\\[^\\/]+[\\/][^\\/]+(?:[\\/]|$)/.test(path)) return true - return /^\\\\[?.]\\(?:[A-Za-z]:\\|UNC\\[^\\]+\\[^\\]+(?:\\|$))/.test(path) -} diff --git a/packages/drive/src/driver/screenshot.ts b/packages/drive/src/driver/screenshot.ts deleted file mode 100644 index 4971f12af21..00000000000 --- a/packages/drive/src/driver/screenshot.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { extname, join, resolve } from "node:path" -import { mkdir } from "node:fs/promises" -import type { Frontend } from "../client/protocol.js" - -export async function renderScreenshot(frame: Frontend.CapturedFrame, directory: string, name?: string) { - const filename = name ?? `screenshot-${crypto.randomUUID()}` - if (!filename || filename.includes("/") || filename.includes("\\") || extname(filename)) - throw new Error("screenshot name must not contain a path or extension") - const { renderFrame } = await import("../recording/render.js") - const output = resolve(directory) - await mkdir(output, { recursive: true }) - const path = join(output, `${filename}.png`) - await Bun.write(path, renderFrame(frame)) - return path -} diff --git a/packages/drive/src/driver/server.ts b/packages/drive/src/driver/server.ts deleted file mode 100644 index 8d5be68fe34..00000000000 --- a/packages/drive/src/driver/server.ts +++ /dev/null @@ -1,228 +0,0 @@ -import * as Effect from "effect/Effect" -import * as Cause from "effect/Cause" -import * as Deferred from "effect/Deferred" -import * as Ref from "effect/Ref" -import * as Semaphore from "effect/Semaphore" -import * as Scope from "effect/Scope" -import * as Exit from "effect/Exit" -import { RpcClientError } from "effect/unstable/rpc" -import * as OpenCodeInstance from "../instance/runtime.js" -import * as SimulationConnector from "../simulation/connector.js" -import * as OpenCodeTui from "./client.js" -import * as OpenCodeSdk from "./opencode.js" -import { error, type OpenCodeDriverError } from "./error.js" -import * as LlmController from "./llm-controller.js" -import * as ToolProducer from "../tool/producer.js" -import type * as Tool from "../tool/index.js" -import { LifecycleError } from "../tool/types.js" - -export interface Target { - readonly command?: ReadonlyArray - readonly dev?: string - readonly env?: Readonly> - readonly visible?: boolean - readonly compatibility?: SimulationConnector.CompatibilityPolicy -} - -export interface Options { - readonly instance: OpenCodeInstance.Instance - readonly target?: Target -} - -export interface Server { - readonly llm: LlmController.Controller - readonly tools: Tool.Controls - readonly settleTools: ToolProducer.Controller["settle"] - readonly tuis: OpenCodeTui.Control - readonly launch: () => Effect.Effect< - OpenCodeSdk.OpenCode, - OpenCodeDriverError | LlmController.LlmControllerError | SimulationConnector.SimulationCompatibilityError - > - readonly kill: () => Effect.Effect - readonly failure: Effect.Effect - readonly compatibility: Effect.Effect> -} - -export const make = Effect.fn("OpenCodeServer.make")(function* (options: Options) { - const connector = yield* SimulationConnector.Service - const target = options.target ?? {} - const instance = options.instance - const llm = yield* LlmController.make() - const toolProducer = yield* ToolProducer.make(instance.toolNames) - const tools: Tool.Controls = { - ...instance.tools, - ...toolProducer.controls, - } - const tuis = yield* OpenCodeTui.makeTuis(instance, target.visible ?? false, connector, target.compatibility) - const parentScope = yield* Scope.Scope - const generation = yield* Ref.make< - | { - readonly scope: Scope.Scope - readonly attachment: LlmController.Attachment - readonly process: import("../instance/process.js").Running - } - | undefined - >(undefined) - const unexpectedExit = yield* Deferred.make() - const toolConnectionFailure = yield* Deferred.make() - const lifecycle = yield* Semaphore.make(1) - let compatibility: ReadonlyArray = [] - - const launchGeneration = Effect.fn("OpenCodeServer.launch")(function* () { - if ((yield* Ref.get(generation)) !== undefined) - return yield* Effect.fail(error("server.launch", "the script server has already been launched")) - const scope = yield* Scope.fork(parentScope) - const launched = yield* instance.launchServer.pipe( - Effect.mapError((cause) => error("server.launch", cause)), - Effect.onError(() => Scope.close(scope, Exit.void)), - ) - let llmAttachment: LlmController.Attachment | undefined - const rollbackLaunch = Effect.suspend(() => - (llmAttachment?.detach() ?? Effect.void).pipe( - Effect.andThen(toolProducer.endGeneration), - Effect.andThen(Scope.close(scope, Exit.void)), - Effect.andThen(instance.killServer.pipe(Effect.ignore)), - ), - ) - const backend = yield* connector - .backend(launched.endpoint, { - compatibility: target.compatibility, - }) - .pipe( - Scope.provide(scope), - Effect.mapError((cause) => error("server.connect", cause)), - Effect.onError(() => rollbackLaunch), - ) - const connectTools = Effect.fn("OpenCodeServer.connectTools")(function* () { - const connectionScope = yield* Scope.fork(scope) - const connection = yield* toolProducer - .connectFrom( - connector - .backend(launched.endpoint, { - attach: false, - compatibility: target.compatibility, - }) - .pipe(Scope.provide(connectionScope)), - ) - .pipe(Effect.onError(() => Scope.close(connectionScope, Exit.void))) - return { ...connection, scope: connectionScope } - }) - const failToolConnection = (cause: unknown) => - toolProducer.shutdown.pipe( - Effect.andThen(Deferred.fail(toolConnectionFailure, error("tools.connect", cause))), - Effect.asVoid, - ) - function reconnectTools(): Effect.Effect { - return connectTools().pipe( - Effect.flatMap(superviseTools), - Effect.catchIf(isRetryableToolConnectionError, () => Effect.sleep(25).pipe(Effect.andThen(reconnectTools()))), - Effect.catchIf(isClosedToolConnectionError, () => Effect.void), - Effect.catch(failToolConnection), - Effect.catchCauseIf( - (cause) => !Cause.hasInterrupts(cause), - (cause) => failToolConnection(Cause.pretty(cause)), - ), - ) - } - function superviseTools(connection: Effect.Success>): Effect.Effect { - return connection.backend.closed.pipe( - Effect.ensuring(connection.attachment.detach().pipe(Effect.andThen(Scope.close(connection.scope, Exit.void)))), - Effect.andThen(Effect.sleep(25)), - Effect.andThen(reconnectTools()), - ) - } - const toolConnection = yield* connectTools().pipe( - Effect.mapError((cause) => error("tools.connect", cause)), - Effect.onError(() => rollbackLaunch), - ) - yield* superviseTools(toolConnection).pipe(Effect.forkIn(scope)) - const attachment = yield* llm.attach(backend).pipe(Effect.onError(() => rollbackLaunch)) - llmAttachment = attachment - const opencode = yield* OpenCodeSdk.make(instance.artifacts).pipe(Effect.onError(() => rollbackLaunch)) - const process = yield* instance.primary.pipe( - Effect.mapError((cause) => error("server.launch", cause)), - Effect.onError(() => rollbackLaunch), - ) - yield* Ref.set(generation, { scope, attachment, process }) - compatibility = [...compatibility, backend.compatibility] - yield* process.exitCode.pipe( - Effect.tap(() => Effect.sleep(25)), - Effect.flatMap((status) => - Ref.get(generation).pipe( - Effect.flatMap((active) => - active?.process === process - ? toolProducer.endGeneration.pipe( - Effect.andThen( - Deferred.fail(unexpectedExit, error("server.exit", `OpenCode server exited with status ${status}`)), - ), - Effect.asVoid, - ) - : Effect.void, - ), - ), - ), - Effect.catchCause(() => Effect.void), - Effect.forkIn(scope), - ) - return opencode - }) - - const killGeneration = Effect.fn("OpenCodeServer.kill")(function* () { - const active = yield* Ref.get(generation) - if (active === undefined) return yield* Effect.fail(error("server.kill", "the script server is not running")) - yield* Ref.set(generation, undefined) - yield* active.attachment.detach() - yield* toolProducer.endGeneration - yield* Scope.close(active.scope, Exit.void) - const stopped = yield* Effect.exit( - instance.killServer.pipe(Effect.mapError((cause) => error("server.kill", cause))), - ) - if (Exit.isFailure(stopped)) return yield* Effect.failCause(stopped.cause) - return undefined - }) - const launch = () => lifecycle.withPermit(launchGeneration()) - const kill = () => lifecycle.withPermit(killGeneration()) - - return { - llm, - tools, - settleTools: toolProducer.settle, - tuis, - launch, - kill, - failure: Effect.raceFirst( - toolProducer.failure.pipe(Effect.mapError((cause) => error("tools", cause))), - Effect.raceFirst( - Deferred.await(toolConnectionFailure), - Effect.raceFirst(llm.failure, Deferred.await(unexpectedExit)), - ), - ).pipe(Effect.tapError(() => toolProducer.endGeneration)), - compatibility: Effect.sync(() => compatibility), - } satisfies Server -}) - -function isRetryableToolConnectionError(cause: unknown) { - return ( - cause instanceof SimulationConnector.SimulationConnectionError || - (cause instanceof RpcClientError.RpcClientError && isTransientRpcClientError(cause)) || - (cause instanceof LifecycleError && cause.reason === "transport-interrupted") - ) -} - -function isClosedToolConnectionError(cause: unknown) { - return cause instanceof LifecycleError && cause.reason === "controller-closed" -} - -function isTransientRpcClientError(error: RpcClientError.RpcClientError) { - if (error.reason._tag !== "RpcClientDefect") return true - const message = error.reason.message - return ( - message.startsWith("cannot connect") || - message === "connection closed" || - message === "connection error" || - message === "connection is not open" || - message === "failed to send request" - ) -} - -export * as OpenCodeServer from "./server.js" diff --git a/packages/drive/src/driver/shared.ts b/packages/drive/src/driver/shared.ts deleted file mode 100644 index 867b819df54..00000000000 --- a/packages/drive/src/driver/shared.ts +++ /dev/null @@ -1,26 +0,0 @@ -import * as Deferred from "effect/Deferred" -import * as Effect from "effect/Effect" -import * as Ref from "effect/Ref" -import * as Scope from "effect/Scope" -import * as Semaphore from "effect/Semaphore" - -/** Starts a terminal operation once in its owner's scope, independently of callers. */ -export const make = Effect.fn("SharedEffect.make")(function* (effect: Effect.Effect) { - const scope = yield* Scope.Scope - const result = yield* Deferred.make() - const started = yield* Ref.make(false) - const lock = yield* Semaphore.make(1) - - return Effect.uninterruptibleMask((restore) => - Effect.gen(function* () { - yield* lock.withPermit( - Effect.gen(function* () { - if (yield* Ref.get(started)) return - yield* Ref.set(started, true) - yield* Deferred.complete(result, effect).pipe(Effect.asVoid, Effect.forkIn(scope, { uninterruptible: true })) - }), - ) - return yield* restore(Deferred.await(result)) - }), - ) -}) diff --git a/packages/drive/src/driver/ui.ts b/packages/drive/src/driver/ui.ts deleted file mode 100644 index 07dbc5f5efa..00000000000 --- a/packages/drive/src/driver/ui.ts +++ /dev/null @@ -1,424 +0,0 @@ -import * as Effect from "effect/Effect" -import * as Schedule from "effect/Schedule" -import * as Schema from "effect/Schema" -import type { RpcClientError } from "effect/unstable/rpc" -import { supportsCapability, type UiConnection } from "../simulation/connector.js" -import { Frontend } from "../client/protocol.js" -import type { SimulationRequestError } from "@opencode-ai/protocol/simulation" -import { mediaDirectory } from "../instance/media.js" -import { renderScreenshot } from "./screenshot.js" - -export interface WaitOptions { - /** Maximum wait in milliseconds. Defaults to 5,000. */ - readonly timeout?: number - /** Poll interval in milliseconds. Defaults to 50. */ - readonly interval?: number -} - -export interface ElementQuery { - readonly id?: string - readonly num?: number - readonly focusable?: boolean - readonly focused?: boolean - readonly clickable?: boolean - readonly editor?: boolean -} - -export type SemanticQuery = Partial - -export type Position = Pick - -export type Predicate = (state: Frontend.State) => boolean -export type EffectPredicate = (state: Frontend.State) => Effect.Effect - -export class UiTimeoutError extends Schema.TaggedErrorClass()("UiTimeoutError", { - operation: Schema.String, - milliseconds: Schema.Number, - message: Schema.String, - frame: Schema.optionalKey(Frontend.CapturedFrame), -}) {} - -export class UiElementAmbiguousError extends Schema.TaggedErrorClass()( - "UiElementAmbiguousError", - { - count: Schema.Number, - }, -) { - override get message() { - return `ui.getElement matched ${this.count} elements` - } -} - -export class UiNodeAmbiguousError extends Schema.TaggedErrorClass()("UiNodeAmbiguousError", { - count: Schema.Number, -}) { - override get message() { - return `ui.getNode matched ${this.count} semantic nodes` - } -} - -export class UiCapabilityError extends Schema.TaggedErrorClass()("UiCapabilityError", { - capability: Schema.Literals(["ui.snapshot", "ui.click.semantic"]), - message: Schema.String, -}) {} - -export class UiWaitOptionsError extends Schema.TaggedErrorClass()("UiWaitOptionsError", { - field: Schema.Literals(["timeout", "interval"]), - value: Schema.Number, - message: Schema.String, -}) {} - -export class UiPredicateError extends Schema.TaggedErrorClass()("UiPredicateError", { - cause: Schema.Defect(), - message: Schema.String, -}) {} - -export class UiScreenshotError extends Schema.TaggedErrorClass()("UiScreenshotError", { - cause: Schema.Defect(), - message: Schema.String, -}) {} - -export interface Options { - /** Per-RPC timeout in milliseconds. Defaults to 30,000. */ - readonly requestTimeout?: number - /** Directory where Drive writes locally rendered screenshots. */ - readonly screenshotDirectory?: string -} - -const RequestTimeout = Schema.Finite.check(Schema.isGreaterThanOrEqualTo(0)) - -export type WaitError = UiTimeoutError | UiWaitOptionsError -type RpcError = SimulationRequestError | RpcClientError.RpcClientError -export type OperationError = RpcError | UiTimeoutError -export type ScreenshotError = OperationError | UiScreenshotError -export type SemanticOperationError = OperationError | UiCapabilityError - -export interface Ui { - readonly state: () => Effect.Effect - readonly snapshot: () => Effect.Effect - readonly capture: () => Effect.Effect - readonly matches: (text: string) => Effect.Effect - readonly screenshot: (name?: string) => Effect.Effect - readonly type: (text: string) => Effect.Effect - readonly press: (key: string, modifiers?: Frontend.KeyModifiers) => Effect.Effect - readonly enter: () => Effect.Effect - readonly arrow: (direction: Frontend.ArrowParams["direction"]) => Effect.Effect - readonly focus: (target: number | Frontend.Element) => Effect.Effect - readonly click: ( - target: number | Frontend.Element | Frontend.SemanticNode, - position?: Position, - ) => Effect.Effect - readonly resize: (viewport: Frontend.ResizeParams) => Effect.Effect - readonly submit: (text: string) => Effect.Effect - readonly waitFor: ( - target: string | Predicate | EffectPredicate, - options?: WaitOptions, - ) => Effect.Effect - readonly getElement: ( - target: number | string | ElementQuery, - options?: WaitOptions, - ) => Effect.Effect - readonly getNode: ( - target: string | SemanticQuery, - options?: WaitOptions, - ) => Effect.Effect -} - -interface Control extends Ui { - readonly finishRecording: () => Effect.Effect -} - -export interface Transform { - (effect: Effect.Effect): Effect.Effect -} - -/** Applies one Effect transformation to every operation without changing the UI interface. */ -export const transform = (ui: Ui, apply: Transform): Ui => ({ - state: () => apply(ui.state()), - snapshot: () => apply(ui.snapshot()), - capture: () => apply(ui.capture()), - matches: (text) => apply(ui.matches(text)), - screenshot: (name) => apply(ui.screenshot(name)), - type: (text) => apply(ui.type(text)), - press: (key, modifiers) => apply(ui.press(key, modifiers)), - enter: () => apply(ui.enter()), - arrow: (direction) => apply(ui.arrow(direction)), - focus: (target) => apply(ui.focus(target)), - click: (target, position) => apply(ui.click(target, position)), - resize: (viewport) => apply(ui.resize(viewport)), - submit: (text) => apply(ui.submit(text)), - waitFor: (target, options) => apply(ui.waitFor(target, options)), - getElement: (target, options) => apply(ui.getElement(target, options)), - getNode: (target, options) => apply(ui.getNode(target, options)), -}) - -export const make = (connection: UiConnection, options?: Options): Control => { - const requestTimeout = RequestTimeout.make(options?.requestTimeout ?? 30_000) - const evidenceTimeout = Math.min(requestTimeout, 1_000) - const { rpc } = connection - const call = (operation: string, effect: Effect.Effect): Effect.Effect => - Effect.timeoutOrElse(effect, { - duration: requestTimeout, - orElse: () => - Effect.fail( - new UiTimeoutError({ - operation, - milliseconds: requestTimeout, - message: `ui.${operation} timed out after ${requestTimeout}ms`, - }), - ), - }) - - const state = Effect.fn("Ui.state")(() => call("state", rpc["ui.state"]())) - const snapshot = Effect.fn("Ui.snapshot")(function* () { - if (!supportsCapability(connection.compatibility, "ui.snapshot")) - return yield* Effect.fail( - new UiCapabilityError({ - capability: "ui.snapshot", - message: "ui.snapshot is not available on this OpenCode endpoint", - }), - ) - return yield* call("snapshot", rpc["ui.snapshot"]()) - }) - const capture = Effect.fn("Ui.capture")(() => call("capture", rpc["ui.capture"]())) - const matches = Effect.fn("Ui.matches")((text: string) => call("matches", rpc["ui.matches"]({ text }))) - const screenshot = Effect.fn("Ui.screenshot")(function* (name?: string) { - const frame = yield* capture() - return yield* Effect.tryPromise({ - try: () => renderScreenshot(frame, options?.screenshotDirectory ?? mediaDirectory(), name), - catch: (cause) => - new UiScreenshotError({ - cause, - message: cause instanceof Error ? cause.message : String(cause), - }), - }) - }) - const finishRecording = Effect.fn("Ui.finishRecording")(() => call("finishRecording", rpc["ui.recording.finish"]())) - const type = Effect.fn("Ui.type")((text: string) => call("type", rpc["ui.type"]({ text }))) - const press = Effect.fn("Ui.press")((key: string, modifiers?: Frontend.KeyModifiers) => - call("press", rpc["ui.press"](Frontend.pressParams(key, modifiers))), - ) - const enter = Effect.fn("Ui.enter")(() => call("enter", rpc["ui.enter"]())) - const arrow = Effect.fn("Ui.arrow")((direction: Frontend.ArrowParams["direction"]) => - call("arrow", rpc["ui.arrow"]({ direction })), - ) - const focus = Effect.fn("Ui.focus")((target: number | Frontend.Element) => - call( - "focus", - rpc["ui.focus"]({ - target: typeof target === "number" ? target : target.num, - }), - ), - ) - const resize = Effect.fn("Ui.resize")((viewport: Frontend.ResizeParams) => call("resize", rpc["ui.resize"](viewport))) - const submit = Effect.fn("Ui.submit")(function* (text: string) { - yield* type(text) - return yield* enter() - }) - - const pollingTimeout = (operation: string, milliseconds: number, message: string) => - rpc["ui.capture"]().pipe( - Effect.timeoutOrElse({ - duration: evidenceTimeout, - orElse: () => Effect.succeed(undefined), - }), - Effect.catchCause(() => Effect.succeed(undefined)), - Effect.flatMap((frame) => - Effect.fail( - new UiTimeoutError({ - operation, - milliseconds, - message, - ...(frame === undefined ? {} : { frame }), - }), - ), - ), - ) - - const poll = ( - operation: string, - read: Effect.Effect, - options: WaitOptions | undefined, - message: string, - ): Effect.Effect => { - const timeout = options?.timeout ?? 5_000 - const interval = options?.interval ?? 50 - const validate = Effect.gen(function* () { - if (!Number.isFinite(timeout) || timeout < 0) { - yield* Effect.fail( - new UiWaitOptionsError({ - field: "timeout", - value: timeout, - message: "ui wait timeout must be a finite non-negative number", - }), - ) - } - if (!Number.isFinite(interval) || interval <= 0) { - yield* Effect.fail( - new UiWaitOptionsError({ - field: "interval", - value: interval, - message: "ui wait interval must be a finite positive number", - }), - ) - } - }) - return Effect.gen(function* () { - yield* validate - return yield* Effect.repeat(read, { - until: (value): value is A => value !== undefined, - schedule: Schedule.spaced(interval), - }).pipe( - Effect.timeoutOrElse({ - duration: timeout, - orElse: () => pollingTimeout(operation, timeout, message), - }), - ) - }) - } - - const waitFor = Effect.fn("Ui.waitFor")((target: string | Predicate | EffectPredicate, options?: WaitOptions) => - poll( - "waitFor", - typeof target === "string" - ? Effect.gen(function* () { - if (!(yield* matches(target))) return undefined - return yield* state() - }) - : Effect.flatMap(state(), (value) => - predicateEffect(target, value).pipe(Effect.map((matches) => (matches ? value : undefined))), - ), - options, - typeof target === "string" - ? `timed out waiting for the UI to match ${JSON.stringify(target)}` - : "timed out waiting for the UI to match", - ), - ) - - const getElement = Effect.fn("Ui.getElement")((target: number | string | ElementQuery, options?: WaitOptions) => - poll( - "getElement", - Effect.flatMap(state(), (value) => { - const elements = value.elements.filter((element) => - typeof target === "number" - ? element.num === target - : typeof target === "string" - ? element.id === target - : matchesQuery(element, target), - ) - if (elements.length > 1) return Effect.fail(new UiElementAmbiguousError({ count: elements.length })) - return Effect.succeed(elements[0]) - }), - options, - "timed out waiting for the UI element", - ), - ) - - const getNode = Effect.fn("Ui.getNode")((target: string | SemanticQuery, options?: WaitOptions) => - poll( - "getNode", - Effect.flatMap(snapshot(), (value) => { - const nodes = value.nodes.filter((node) => - typeof target === "string" ? node.id === target : matchesQuery(node, target), - ) - if (nodes.length > 1) return Effect.fail(new UiNodeAmbiguousError({ count: nodes.length })) - return Effect.succeed(nodes[0]) - }), - options, - "timed out waiting for the semantic UI node", - ), - ) - - const click = Effect.fn("Ui.click")(function* ( - target: number | Frontend.Element | Frontend.SemanticNode, - position?: Position, - ) { - if (typeof target !== "number" && "element" in target) { - if (!supportsCapability(connection.compatibility, "ui.click.semantic")) - return yield* Effect.fail( - new UiCapabilityError({ - capability: "ui.click.semantic", - message: "semantic ui.click is not available on this OpenCode endpoint", - }), - ) - const element = - position === undefined - ? (yield* state()).elements.find((candidate) => candidate.num === target.element) - : undefined - return yield* call( - "click", - rpc["ui.click"]({ - target: target.element, - x: position?.x ?? (element === undefined ? 0 : Math.floor(element.width / 2)), - y: position?.y ?? (element === undefined ? 0 : Math.floor(element.height / 2)), - semantic: { - id: target.id, - ...(target.instance === undefined ? {} : { instance: target.instance }), - element: target.element, - }, - }), - ) - } - const element = typeof target === "number" ? yield* getElement(target) : target - return yield* call( - "click", - rpc["ui.click"]({ - target: element.num, - x: position?.x ?? Math.floor(element.width / 2), - y: position?.y ?? Math.floor(element.height / 2), - }), - ) - }) - - return { - state, - snapshot, - capture, - matches, - screenshot, - finishRecording, - type, - press, - enter, - arrow, - focus, - click, - resize, - submit, - waitFor, - getElement, - getNode, - } -} - -function predicateEffect( - predicate: Predicate | EffectPredicate, - state: Frontend.State, -): Effect.Effect { - return Effect.gen(function* () { - const result = yield* Effect.try({ - try: () => predicate(state), - catch: (cause) => - new UiPredicateError({ - cause, - message: `ui.waitFor predicate failed: ${cause instanceof Error ? cause.message : String(cause)}`, - }), - }) - const value: unknown = Effect.isEffect(result) ? yield* result : result - if (typeof value === "boolean") return value - return yield* Effect.fail( - new UiPredicateError({ - cause: value, - message: "ui.waitFor predicate must return a boolean or Effect", - }), - ) - }) -} - -function matchesQuery(value: Value, query: Partial) { - return Object.entries(query).every( - ([key, expected]) => expected === undefined || Reflect.get(value, key) === expected, - ) -} - -export * as OpenCodeUi from "./ui.js" diff --git a/packages/drive/src/frame/index.ts b/packages/drive/src/frame/index.ts deleted file mode 100644 index 4c375ff4ad8..00000000000 --- a/packages/drive/src/frame/index.ts +++ /dev/null @@ -1,162 +0,0 @@ -/** - * Renderer-neutral vocabulary for drawing captured terminal frames: the - * canonical cell geometry, OpenTUI text-attribute bits, geometric block/bar - * glyph primitives, and baseline placement. Both the Drive PNG renderer - * (`recording/render.ts`) and browser canvas renderers consume this module so - * their output stays synchronized by construction. - * - * This entry point must stay dependency-free and browser-safe. - */ - -/** OpenTUI text-attribute bits carried on captured spans. */ -export const TextStyle = { - bold: 1, - dim: 2, - italic: 4, - underline: 8, - blink: 16, - inverse: 32, - invisible: 64, - strikethrough: 128, -} as const - -/** Canonical cell width in pixels. */ -export const CellWidth = 10 -/** Canonical cell height in pixels. */ -export const CellHeight = 20 -/** Canonical font size in pixels for cell text. */ -export const FontSize = 16 -/** Opacity applied to dim spans. */ -export const DimAlpha = 0.55 -/** Y offset of the underline stroke within a cell. */ -export const UnderlineOffset = 17 -/** Y offset of the strikethrough stroke within a cell. */ -export const StrikethroughOffset = 10 - -/** A rectangle in pixels relative to a cell's top-left corner. */ -export interface GlyphRect { - readonly x: number - readonly y: number - readonly width: number - readonly height: number - /** Whether the rectangle's width scales with the glyph's cell count. */ - readonly stretch: boolean -} - -/** - * Terminal cell primitives that renderers draw geometrically instead of with - * fonts: solid blocks and structural bars. Ordinary Unicode symbols belong in - * fallback fonts, not in this table. - */ -export const BlockGlyphs: Record = { - "█": { x: 0, y: 0, width: CellWidth, height: CellHeight, stretch: true }, - "▀": { x: 0, y: 0, width: CellWidth, height: CellHeight / 2, stretch: true }, - "▄": { - x: 0, - y: CellHeight / 2, - width: CellWidth, - height: CellHeight / 2, - stretch: true, - }, - "┃": { x: CellWidth / 2 - 1, y: 0, width: 2, height: CellHeight, stretch: false }, - "╹": { x: CellWidth / 2 - 1, y: 0, width: 2, height: CellHeight / 2, stretch: false }, -} - -const lightBoxGlyphs: Record = { - "─": [false, true, false, true], - "│": [true, false, true, false], - "┌": [false, true, true, false], - "┐": [false, false, true, true], - "└": [true, true, false, false], - "┘": [true, false, false, true], - "├": [true, true, true, false], - "┤": [true, false, true, true], - "┬": [false, true, true, true], - "┴": [true, true, false, true], - "┼": [true, true, true, true], - "╭": [false, true, true, false], - "╮": [false, false, true, true], - "╰": [true, true, false, false], - "╯": [true, false, false, true], -} - -const diagonalBlockGlyphs: Record>> = { - "▚": [ - { x: 0, y: 0, width: CellWidth / 2, height: CellHeight / 2 }, - { x: CellWidth / 2, y: CellHeight / 2, width: CellWidth / 2, height: CellHeight / 2 }, - ], - "▞": [ - { x: CellWidth / 2, y: 0, width: CellWidth / 2, height: CellHeight / 2 }, - { x: 0, y: CellHeight / 2, width: CellWidth / 2, height: CellHeight / 2 }, - ], -} - -/** - * Draws a block/bar glyph geometrically. Returns false when the character is - * not a geometric primitive and must be drawn with fonts instead. - */ -export const drawBlockGlyph = ( - context: { - fillRect(x: number, y: number, width: number, height: number): void - }, - char: string, - x: number, - y: number, - cells = 1, -): boolean => { - const glyph = BlockGlyphs[char] - if (glyph !== undefined) { - const width = glyph.stretch ? glyph.width + (cells - 1) * CellWidth : glyph.width - context.fillRect(x + glyph.x, y + glyph.y, width, glyph.height) - return true - } - const box = lightBoxGlyphs[char] - if (box !== undefined) { - const lineX = CellWidth / 2 - 1 - const lineY = CellHeight / 2 - 1 - const vertical = box[0] || box[2] - if (vertical) { - const top = box[0] ? 0 : lineY - const bottom = box[2] ? CellHeight : lineY + 1 - context.fillRect(x + lineX, y + top, 1, bottom - top) - } - if (!vertical && (box[1] || box[3])) { - const left = box[3] ? 0 : lineX - const right = box[1] ? CellWidth : lineX + 1 - context.fillRect(x + left, y + lineY, right - left, 1) - } else { - if (box[3]) context.fillRect(x, y + lineY, lineX, 1) - if (box[1]) context.fillRect(x + lineX + 1, y + lineY, CellWidth - lineX - 1, 1) - } - return true - } - const quadrants = diagonalBlockGlyphs[char] - if (quadrants === undefined) return false - for (const quadrant of quadrants) context.fillRect(x + quadrant.x, y + quadrant.y, quadrant.width, quadrant.height) - return true -} - -/** The subset of a canvas 2D context needed to measure font baselines. */ -export interface FontMeasurer { - measureText(text: string): { - readonly fontBoundingBoxAscent?: number - readonly fontBoundingBoxDescent?: number - } -} - -const baselineCache = new Map() - -/** - * Alphabetic baseline that centers the font's bounding box in a cell. The - * context's font must already be set to `font`. - */ -export const baselineOffset = (context: FontMeasurer, font: string): number => { - const cached = baselineCache.get(font) - if (cached !== undefined) return cached - const metrics = context.measureText("Mg") - const ascent = metrics.fontBoundingBoxAscent ?? FontSize * 0.8 - const descent = metrics.fontBoundingBoxDescent ?? FontSize * 0.2 - const offset = (CellHeight - (ascent + descent)) / 2 + ascent - baselineCache.set(font, offset) - return offset -} diff --git a/packages/drive/src/globals.d.ts b/packages/drive/src/globals.d.ts deleted file mode 100644 index 57030bc4280..00000000000 --- a/packages/drive/src/globals.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -interface WebSocket { - terminate(): void -} diff --git a/packages/drive/src/index.ts b/packages/drive/src/index.ts deleted file mode 100644 index 6b64d347155..00000000000 --- a/packages/drive/src/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -export * from "./script/index.js" -export * as Effect from "effect/Effect" -export * as Llm from "./llm/index.js" -export * as OpenCodeDriver from "./driver/index.js" -export * as Errors from "./script/errors.js" -export * as Tool from "./tool/index.js" -export { Frontend } from "./client/protocol.js" -export type { OpenCode, Recording, Tui, TuiLaunchError, TuiOptions, Tuis, Ui } from "./driver/index.js" diff --git a/packages/drive/src/instance/control.ts b/packages/drive/src/instance/control.ts deleted file mode 100644 index 6530b70ab5f..00000000000 --- a/packages/drive/src/instance/control.ts +++ /dev/null @@ -1,162 +0,0 @@ -import { rm } from "node:fs/promises" -import { connect, createServer } from "node:net" -import type { ResponseConfiguration, ResponseUpdate } from "../cli/response-generator.js" - -export interface StopResult { - readonly recording?: string - readonly screenshots: ReadonlyArray -} - -export async function listenControl( - path: string, - handlers: { - readonly restart: () => Promise - readonly stop: (onProgress: (percent: number) => void) => Promise - readonly responses: (input: ResponseUpdate) => Promise - }, -) { - const server = createServer((socket) => { - let buffer = "" - socket.setEncoding("utf8") - socket.on("data", (data) => { - buffer += data - if (buffer.length > 64 * 1024) { - socket.removeAllListeners("data") - socket.end("error: control request exceeds 64 KiB\n") - return - } - if (!buffer.includes("\n")) return - socket.removeAllListeners("data") - const progress = (percent: number) => socket.write(`progress ${percent}\n`) - void handle(buffer.slice(0, buffer.indexOf("\n")), progress).then( - (result) => socket.end(`success${result === undefined ? "" : ` ${JSON.stringify(result)}`}\n`), - (error) => socket.end(`error: ${error instanceof Error ? error.message : String(error)}\n`), - ) - }) - }) - const handle = async (input: string, onProgress: (percent: number) => void) => { - if (input === "restart") return handlers.restart() - if (input === "stop") return handlers.stop(onProgress) - if (input === "responses") return handlers.responses({}) - if (input.startsWith("responses ")) return handlers.responses(parseResponseUpdate(input.slice("responses ".length))) - throw new Error("unknown control command") - } - await listen(server, path) - return async () => { - await new Promise((resolve) => server.close(() => resolve())) - await rm(path, { force: true }) - } -} - -export async function request(path: string, command: "restart") { - const response = await send(path, command) - if (response === "success") return undefined - if (!response.startsWith("success ")) throw responseError(response) - const value: unknown = JSON.parse(response.slice("success ".length)) - if (typeof value !== "string") throw new Error("instance returned an invalid recording path") - return value -} - -export async function requestStop(path: string, onProgress?: (percent: number) => void) { - const response = await send(path, "stop", onProgress) - if (!response.startsWith("success ")) throw responseError(response) - const value: unknown = JSON.parse(response.slice("success ".length)) - if (!isStopResult(value)) throw new Error("instance returned an invalid stop result") - return value -} - -export async function requestResponses(path: string, input: ResponseUpdate) { - const response = await send( - path, - Object.keys(input).length === 0 ? "responses" : `responses ${JSON.stringify(input)}`, - ) - if (!response.startsWith("success ")) throw responseError(response) - const value: unknown = JSON.parse(response.slice("success ".length)) - if (!isResponseConfiguration(value)) throw new Error("instance returned an invalid response configuration") - return value -} - -function send(path: string, command: string, onProgress?: (percent: number) => void) { - return new Promise((resolve, reject) => { - const socket = connect(path) - let response = "" - let buffer = "" - const timer = setTimeout(() => { - socket.destroy() - reject(new Error("instance control request timed out")) - }, 5 * 60_000) - socket.setEncoding("utf8") - socket.on("connect", () => socket.write(`${command}\n`)) - socket.on("data", (data) => { - buffer += data - while (buffer.includes("\n")) { - const index = buffer.indexOf("\n") - const line = buffer.slice(0, index) - buffer = buffer.slice(index + 1) - if (line.startsWith("progress ")) { - const percent = Number(line.slice("progress ".length)) - if (Number.isInteger(percent)) onProgress?.(percent) - continue - } - response += `${line}\n` - } - }) - socket.on("end", () => { - clearTimeout(timer) - resolve(`${response}${buffer}`.trim()) - }) - socket.on("error", () => { - clearTimeout(timer) - reject(new Error("instance control socket is unavailable")) - }) - }) -} - -function parseResponseUpdate(input: string): ResponseUpdate { - const value: unknown = JSON.parse(input) - if (typeof value !== "object" || value === null || Array.isArray(value)) - throw new Error("invalid responses configuration") - const types = "types" in value ? stringArray(value.types) : undefined - const tools = "tools" in value ? stringArray(value.tools) : undefined - return { - ...(types === undefined ? {} : { types }), - ...(tools === undefined ? {} : { tools }), - } -} - -function stringArray(value: unknown) { - if (!Array.isArray(value) || !value.every((item) => typeof item === "string")) - throw new Error("response types and tools must be string arrays") - return value -} - -function isResponseConfiguration(value: unknown): value is ResponseConfiguration { - if (typeof value !== "object" || value === null) return false - if (!("types" in value) || !stringArrayValue(value.types)) return false - return "tools" in value && stringArrayValue(value.tools) -} - -function isStopResult(value: unknown): value is StopResult { - if (typeof value !== "object" || value === null) return false - if (!("screenshots" in value) || !stringArrayValue(value.screenshots)) return false - return !("recording" in value) || typeof value.recording === "string" -} - -function stringArrayValue(value: unknown) { - return Array.isArray(value) && value.every((item) => typeof item === "string") -} - -function responseError(response: string) { - return new Error(response.replace(/^error:\s*/, "") || "empty control response") -} - -async function listen(server: ReturnType, path: string) { - await rm(path, { force: true }) - await new Promise((resolve, reject) => { - server.once("error", reject) - server.listen(path, () => { - server.off("error", reject) - resolve() - }) - }) -} diff --git a/packages/drive/src/instance/default-config.jsonc b/packages/drive/src/instance/default-config.jsonc deleted file mode 100644 index 544e6914d57..00000000000 --- a/packages/drive/src/instance/default-config.jsonc +++ /dev/null @@ -1,34 +0,0 @@ -{ - "model": "simulation/gpt-sim-model", - "snapshots": false, - "permissions": [ - { - "action": "*", - "resource": "*", - "effect": "allow", - }, - ], - "providers": { - "simulation": { - "name": "Simulation", - "package": "@opencode-ai/ai/providers/openai/chat", - "settings": { - "apiKey": "sim-key", - }, - "models": { - "gpt-sim-model": { - "name": "Simulated Model", - "capabilities": { - "tools": true, - "input": ["text"], - "output": ["text"], - }, - "limit": { - "context": 128000, - "output": 16000, - }, - }, - }, - }, - }, -} diff --git a/packages/drive/src/instance/dev.ts b/packages/drive/src/instance/dev.ts deleted file mode 100644 index b66592be2fa..00000000000 --- a/packages/drive/src/instance/dev.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { mkdir, rm, symlink } from "node:fs/promises" -import { join, resolve } from "node:path" -import * as Effect from "effect/Effect" -import { instanceError } from "./error.js" - -/** - * Prepares an OpenCode development checkout for launch: verifies the CLI - * entrypoint and reuses its installed `@opentui/solid` preload. - */ -export const prepareDev = Effect.fn("OpenCodeInstance.prepareDev")(function* (artifacts: string, directory: string) { - const root = resolve(directory) - const entrypoint = join(root, "packages", "cli", "src", "index.ts") - const solid = join(root, "packages", "tui", "node_modules", "@opentui", "solid") - const standalone = yield* Effect.tryPromise({ - try: async () => { - if (!(await Bun.file(entrypoint).exists())) - throw new Error(`OpenCode development entrypoint not found: ${entrypoint}`) - if (!(await Bun.file(join(solid, "package.json")).exists())) - throw new Error(`OpenCode development dependency not found: ${solid}; run bun install in ${root}`) - const preload = join(artifacts, "node_modules", "@opentui", "solid") - await mkdir(join(artifacts, "node_modules", "@opentui"), { - recursive: true, - }) - await rm(preload, { recursive: true, force: true }) - await symlink(solid, preload, "dir") - return Bun.file(join(root, "packages", "cli", "src", "services", "standalone.ts")).exists() - }, - catch: (cause) => instanceError("prepare development checkout", cause), - }) - const preloads = ["--conditions=browser", `--preload=${join(solid, "scripts", "preload.js")}`] - const base = [process.execPath, ...preloads, entrypoint] - return { - command: [...base, ...(standalone ? ["--standalone"] : [])], - scriptedCommand: base, - preloads, - } -}) diff --git a/packages/drive/src/instance/error.ts b/packages/drive/src/instance/error.ts deleted file mode 100644 index 58894ee391e..00000000000 --- a/packages/drive/src/instance/error.ts +++ /dev/null @@ -1,15 +0,0 @@ -import * as Schema from "effect/Schema" - -export class OpenCodeInstanceError extends Schema.TaggedErrorClass()("OpenCodeInstanceError", { - operation: Schema.String, - message: Schema.String, -}) {} - -/** Coerces any cause into an `OpenCodeInstanceError`, preserving existing ones. */ -export function instanceError(operation: string, cause: unknown) { - if (cause instanceof OpenCodeInstanceError) return cause - return new OpenCodeInstanceError({ - operation, - message: cause instanceof Error ? cause.message : String(cause), - }) -} diff --git a/packages/drive/src/instance/instance.ts b/packages/drive/src/instance/instance.ts deleted file mode 100644 index fc9b6482ce2..00000000000 --- a/packages/drive/src/instance/instance.ts +++ /dev/null @@ -1,114 +0,0 @@ -import { mkdir } from "node:fs/promises" -import { tmpdir } from "node:os" -import { join, resolve } from "node:path" -import * as Effect from "effect/Effect" -import { createScriptFileSystem } from "../script/filesystem.js" -import { commitScriptProject, hasGitMetadata, initializeScriptProject } from "../script/project.js" -import type { OpenCodeConfig, OpenCodeTuiConfig, Project, Setup } from "../project.js" - -export function artifactDirectory() { - return resolve(join(tmpdir(), "opencode-drive")) -} - -export async function initializeInstance(name?: string) { - const artifacts = resolve(join(artifactDirectory(), `run-${crypto.randomUUID()}`)) - const logs = join(artifacts, "logs") - const drive = join(artifacts, "drive") - await Promise.all([ - mkdir(logs, { recursive: true }), - mkdir(drive, { recursive: true }), - mkdir(join(artifacts, "home", ".cache"), { recursive: true }), - mkdir(join(artifacts, "home", ".config"), { recursive: true }), - mkdir(join(artifacts, "home", ".local", "share"), { recursive: true }), - mkdir(join(artifacts, "home", ".local", "state"), { recursive: true }), - ]) - const files = join(artifacts, "files") - const defaultConfig = await Bun.file(new URL("./default-config.jsonc", import.meta.url)).text() - await Promise.all([ - mkdir(join(files, ".git"), { recursive: true }), - mkdir(join(files, ".opencode"), { recursive: true }), - mkdir(join(files, "src"), { recursive: true }), - ]) - await Promise.all([ - Bun.write(join(files, ".opencode", "opencode.jsonc"), defaultConfig), - Bun.write(join(files, "src", "garden.js"), "export function greet(name) {\n return `Hello, ${name}.`\n}\n"), - ...(name ? [Bun.write(join(drive, "name"), `${name}\n`)] : []), - ]) - return artifacts -} - -export const prepareInstanceProject = Effect.fn("OpenCodeInstance.prepareProject")(function* (options: { - readonly artifacts: string - readonly project?: Project - readonly config?: OpenCodeConfig - readonly tui?: OpenCodeTuiConfig - readonly setup?: Setup -}) { - const files = join(resolve(options.artifacts), "files") - const configPath = join(files, ".opencode", "opencode.jsonc") - const tuiPath = join(files, ".opencode", "tui.jsonc") - const project = options.project - if (project) yield* promise(() => initializeScriptProject(files, project)) - const [config, tui] = yield* Effect.all( - [promise(() => readConfig(configPath, "opencode.jsonc")), promise(() => readConfig(tuiPath, "tui.jsonc", {}))], - { concurrency: "unbounded" }, - ) - deepMerge(config, options.config) - deepMerge(tui, options.tui) - if (options.setup !== undefined) { - const protectGit = Boolean(options.project?.git) || (yield* promise(() => hasGitMetadata(files))) - const setup: Effect.Effect = options.setup({ - fs: createScriptFileSystem(files, { git: protectGit }), - config, - tuiConfig: tui, - }) - if (!Effect.isEffect(setup)) return yield* Effect.fail(new Error("setup must return an Effect")) - yield* setup - } - yield* Effect.all( - [ - promise(() => Bun.write(configPath, `${JSON.stringify(config, undefined, 2)}\n`)), - promise(() => Bun.write(tuiPath, `${JSON.stringify(tui, undefined, 2)}\n`)), - ], - { concurrency: "unbounded" }, - ) - if (options.project?.git) yield* promise(() => commitScriptProject(files)) - return undefined -}) - -const promise = (evaluate: () => PromiseLike) => - Effect.tryPromise({ - try: evaluate, - catch: (cause) => (cause instanceof Error ? cause : new Error(String(cause))), - }) - -async function readConfig(path: string, name: string, fallback?: OpenCodeConfig): Promise { - const file = Bun.file(path) - let value: unknown - try { - value = (await file.exists()) - ? Bun.JSONC.parse(await file.text()) - : (fallback ?? Bun.JSONC.parse(await Bun.file(new URL("./default-config.jsonc", import.meta.url)).text())) - } catch (cause) { - throw new Error(`invalid .opencode/${name}`, { cause }) - } - if (!isJsonObject(value)) throw new Error(`invalid .opencode/${name}: expected a JSON object`) - return value -} - -function deepMerge(target: OpenCodeConfig, source: OpenCodeConfig | undefined) { - if (source === undefined) return target - for (const [key, value] of Object.entries(source)) { - const existing = target[key] - if (isJsonObject(existing) && isJsonObject(value)) { - deepMerge(existing, value) - } else { - target[key] = structuredClone(value) - } - } - return target -} - -function isJsonObject(value: unknown): value is OpenCodeConfig { - return typeof value === "object" && value !== null && !Array.isArray(value) -} diff --git a/packages/drive/src/instance/media.ts b/packages/drive/src/instance/media.ts deleted file mode 100644 index cbd16d1d339..00000000000 --- a/packages/drive/src/instance/media.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { basename, join, resolve } from "node:path" -import { artifactDirectory } from "./instance.js" - -export function mediaDirectory() { - return resolve(process.env.OPENCODE_DRIVE_MEDIA_DIR ?? join(artifactDirectory(), "output")) -} - -export const runMediaDirectory = (artifacts: string, generation: number) => - join(mediaDirectory(), basename(resolve(artifacts)), `generation-${generation}`) - -export async function readInstanceMediaDirectory(artifacts: string, name: string) { - const value: unknown = await Bun.file(join(artifacts, "drive", `${name}.json`)).json() - if (typeof value !== "object" || value === null || !("media" in value) || typeof value.media !== "string") - throw new Error(`drive instance "${name}" has no media directory`) - return value.media -} diff --git a/packages/drive/src/instance/process.ts b/packages/drive/src/instance/process.ts deleted file mode 100644 index c518c12fc4d..00000000000 --- a/packages/drive/src/instance/process.ts +++ /dev/null @@ -1,228 +0,0 @@ -import * as Effect from "effect/Effect" -import * as Exit from "effect/Exit" -import * as FileSystem from "effect/FileSystem" -import * as Fiber from "effect/Fiber" -import * as Option from "effect/Option" -import * as Ref from "effect/Ref" -import type * as Scope from "effect/Scope" -import * as Scope_ from "effect/Scope" -import * as Schema from "effect/Schema" -import * as Stream from "effect/Stream" -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process" - -export class ProcessError extends Schema.TaggedErrorClass()("ProcessError", { - operation: Schema.String, - command: Schema.Array(Schema.String), - message: Schema.String, -}) {} - -export interface SpawnOptions { - readonly cwd?: string - readonly env?: Readonly> - readonly extendEnv?: boolean - readonly stdin?: "inherit" | "ignore" - readonly stdout?: "inherit" | "ignore" | { readonly path: string } - readonly stderr?: "inherit" | "ignore" | { readonly path: string } - readonly detached?: boolean -} - -export interface Running { - readonly pid: number - readonly exitCode: Effect.Effect - readonly isRunning: Effect.Effect - readonly terminate: Effect.Effect - readonly detach: Effect.Effect -} - -export interface Output { - readonly status: number - readonly stdout: string - readonly stderr: string -} - -type RunOutputMode = "capture" | "inherit" | "ignore" - -export interface RunOptions extends Omit { - readonly stdout?: RunOutputMode - readonly stderr?: RunOutputMode - readonly stdoutLimit?: number - readonly stderrLimit?: number -} - -export const spawn = Effect.fn("Process.spawn")(function* (command: ReadonlyArray, options: SpawnOptions = {}) { - const executable = command[0] - if (executable === undefined) - return yield* Effect.fail(processError("spawn", command, "cannot spawn an empty command")) - - const parentScope = yield* Scope_.Scope - const processScope = yield* Scope_.fork(parentScope) - const spawner = yield* ChildProcessSpawner.ChildProcessSpawner - const fileSystem = yield* FileSystem.FileSystem - const handle = yield* spawner - .spawn( - ChildProcess.make(executable, command.slice(1), { - cwd: options.cwd, - env: options.env, - extendEnv: options.extendEnv ?? false, - stdin: options.stdin ?? "ignore", - stdout: outputMode(options.stdout), - stderr: outputMode(options.stderr), - detached: options.detached, - killSignal: "SIGKILL", - }), - ) - .pipe( - Scope_.provide(processScope), - Effect.mapError((cause) => processError("spawn", command, cause)), - Effect.onError(() => Scope_.close(processScope, Exit.void)), - ) - - const drains: Array> = [] - if (typeof options.stdout === "object") - drains.push( - yield* Stream.run(handle.stdout, fileSystem.sink(options.stdout.path)).pipe( - Effect.mapError((cause) => processError("stdout", command, cause)), - Effect.forkIn(processScope), - ), - ) - if (typeof options.stderr === "object") - drains.push( - yield* Stream.run(handle.stderr, fileSystem.sink(options.stderr.path)).pipe( - Effect.mapError((cause) => processError("stderr", command, cause)), - Effect.forkIn(processScope), - ), - ) - - const exitCode = handle.exitCode.pipe( - Effect.map(Number), - Effect.catch(() => Effect.succeed(1)), - Effect.tap(() => - Effect.forEach(drains, Fiber.join, { - concurrency: "unbounded", - discard: true, - }), - ), - ) - const detached = yield* Ref.make(false) - - const terminate = Effect.uninterruptible( - Effect.gen(function* () { - const running = yield* handle.isRunning.pipe(Effect.mapError((cause) => processError("status", command, cause))) - if (!running) { - yield* Scope_.close(processScope, Exit.void) - return undefined - } - const graceful = yield* handle.kill({ killSignal: "SIGTERM" }).pipe( - Effect.timeoutOption(1_000), - Effect.mapError((cause) => processError("terminate", command, cause)), - ) - if (Option.isNone(graceful)) - yield* handle - .kill({ killSignal: "SIGKILL" }) - .pipe(Effect.mapError((cause) => processError("kill", command, cause))) - yield* exitCode - yield* Scope_.close(processScope, Exit.void) - return undefined - }), - ) - yield* Effect.addFinalizer(() => - Ref.get(detached).pipe(Effect.flatMap((isDetached) => (isDetached ? Effect.void : terminate.pipe(Effect.ignore)))), - ) - yield* Effect.exit(exitCode).pipe(Effect.andThen(Scope_.close(processScope, Exit.void)), Effect.forkIn(parentScope)) - - const detach = handle.unref.pipe( - Effect.asVoid, - Effect.mapError((cause) => processError("detach", command, cause)), - Effect.andThen(Ref.set(detached, true)), - Effect.andThen(Scope_.close(processScope, Exit.void)), - ) - - return { - pid: Number(handle.pid), - exitCode, - isRunning: handle.isRunning.pipe(Effect.mapError((cause) => processError("status", command, cause))), - terminate, - detach, - } satisfies Running -}) - -export const run = Effect.fn("Process.run")(function* (command: ReadonlyArray, options: RunOptions = {}) { - const executable = command[0] - if (executable === undefined) return yield* Effect.fail(processError("run", command, "cannot run an empty command")) - const spawner = yield* ChildProcessSpawner.ChildProcessSpawner - return yield* Effect.scoped( - Effect.gen(function* () { - const handle = yield* spawner - .spawn( - ChildProcess.make(executable, command.slice(1), { - cwd: options.cwd, - env: options.env, - extendEnv: options.extendEnv ?? false, - stdin: options.stdin ?? "ignore", - stdout: captureMode(options.stdout), - stderr: captureMode(options.stderr), - killSignal: "SIGKILL", - }), - ) - .pipe(Effect.mapError((cause) => processError("spawn", command, cause))) - const stdout = yield* collectOutput(handle.stdout, options.stdout, options.stdoutLimit).pipe( - Effect.mapError((cause) => processError("stdout", command, cause)), - Effect.forkChild, - ) - const stderr = yield* collectOutput(handle.stderr, options.stderr, options.stderrLimit).pipe( - Effect.mapError((cause) => processError("stderr", command, cause)), - Effect.forkChild, - ) - const status = yield* handle.exitCode.pipe( - Effect.map(Number), - Effect.mapError((cause) => processError("wait", command, cause)), - ) - return { - status, - stdout: yield* Fiber.join(stdout), - stderr: yield* Fiber.join(stderr), - } satisfies Output - }), - ) -}) - -function outputMode(output: SpawnOptions["stdout"] | SpawnOptions["stderr"]) { - return typeof output === "object" ? "pipe" : (output ?? "ignore") -} - -function captureMode(output: RunOutputMode | undefined) { - return output === undefined || output === "capture" ? "pipe" : output -} - -function collectOutput( - stream: Stream.Stream, - mode: RunOutputMode | undefined, - limit: number | undefined, -) { - if (mode === "inherit" || mode === "ignore") return Effect.succeed("") - if (limit === undefined) return stream.pipe(Stream.decodeText(), Stream.mkString) - return Effect.gen(function* () { - let output = "" - yield* stream.pipe( - Stream.decodeText(), - Stream.runForEach((chunk) => - Effect.sync(() => { - output = `${output}${chunk}`.slice(-limit) - }), - ), - ) - return output - }) -} - -function processError(operation: string, command: ReadonlyArray, cause: unknown) { - return new ProcessError({ - operation, - command: [...command], - message: cause instanceof Error ? cause.message : String(cause), - }) -} - -export type Requirements = Scope.Scope | ChildProcessSpawner.ChildProcessSpawner | FileSystem.FileSystem - -export * as Process from "./process.js" diff --git a/packages/drive/src/instance/readiness.ts b/packages/drive/src/instance/readiness.ts deleted file mode 100644 index 3f65d1e023b..00000000000 --- a/packages/drive/src/instance/readiness.ts +++ /dev/null @@ -1,68 +0,0 @@ -import * as Effect from "effect/Effect" -import * as Schedule from "effect/Schedule" -import type * as Process from "./process.js" -import { instanceError, type OpenCodeInstanceError } from "./error.js" - -/** Allocates a free localhost port by briefly binding an ephemeral server. */ -export const freePort = Effect.tryPromise({ - try: async () => { - const server = Bun.serve({ - hostname: "127.0.0.1", - port: 0, - fetch: () => new Response(), - }) - const port = server.port - await server.stop(true) - if (port === undefined) throw new Error("ephemeral server did not expose a port") - return port - }, - catch: (cause) => instanceError("allocate port", cause), -}) - -/** - * Polls a WebSocket endpoint until it accepts connections, failing early when - * the owning process exits or the timeout elapses. - */ -export const waitForWebSocket = Effect.fn("OpenCodeInstance.waitForWebSocket")( - (url: string, process: Process.Running, timeout: number) => - Effect.raceFirst( - open(url).pipe(Effect.retry(Schedule.spaced(50))), - process.exitCode.pipe( - Effect.flatMap((status) => - Effect.fail( - instanceError("wait for endpoint", `OpenCode exited with status ${status} before ${url} became ready`), - ), - ), - ), - ).pipe( - Effect.timeoutOrElse({ - duration: timeout, - orElse: () => Effect.fail(instanceError("wait for endpoint", `timed out waiting for drive endpoint ${url}`)), - }), - ), -) - -const open = (url: string) => - Effect.callback((resume) => { - const socket = new WebSocket(url) - const onOpen = () => { - cleanup() - socket.terminate() - resume(Effect.void) - } - const onError = () => { - cleanup() - socket.terminate() - resume(Effect.fail(instanceError("connect", `cannot connect to ${url}`))) - } - const cleanup = () => { - socket.removeEventListener("open", onOpen) - socket.removeEventListener("error", onError) - } - socket.addEventListener("open", onOpen) - socket.addEventListener("error", onError) - return Effect.sync(() => { - cleanup() - socket.terminate() - }) - }) diff --git a/packages/drive/src/instance/registry.ts b/packages/drive/src/instance/registry.ts deleted file mode 100644 index c26f14c58c1..00000000000 --- a/packages/drive/src/instance/registry.ts +++ /dev/null @@ -1,317 +0,0 @@ -import { mkdir, open, readdir, rename, rm } from "node:fs/promises" -import { homedir } from "node:os" -import { basename, join } from "node:path" - -export interface InstanceManifest { - readonly version: 1 - readonly name: string - readonly pid: number - readonly startedAt: string - readonly cwd: string - readonly artifacts: string - readonly visible: boolean - readonly status: "starting" | "ready" - readonly endpoints: { readonly ui: string; readonly backend: string } - readonly control: string -} - -export interface InitializedManifest { - readonly version: 1 - readonly name: string - readonly createdAt: string - readonly cwd: string - readonly artifacts: string - readonly status: "initialized" - readonly temporary?: boolean - readonly pid?: number -} - -export type Manifest = InstanceManifest | InitializedManifest - -export function registryDirectory() { - return ( - process.env.DRIVE_REGISTRY_DIR ?? - join(process.env.XDG_STATE_HOME ?? join(homedir(), ".local", "state"), "opencode-drive", "instances") - ) -} - -export function manifestPath(name: string) { - return join(registryDirectory(), `${validateName(name)}.json`) -} - -export function controlPath(name: string) { - return join(registryDirectory(), `${validateName(name)}.sock`) -} - -export async function initializeManifest( - name: string, - cwd: string, - create: () => Promise, - options: { - readonly temporary?: boolean - readonly adoptPid?: number - } = {}, -) { - let initialized: InitializedManifest | undefined - await withLock(name, false, async () => { - let existing = await read(manifestPath(name)) - if (existing?.status === "initialized") { - if (options.temporary && options.adoptPid !== undefined && existing.pid === options.adoptPid) { - initialized = { ...existing, pid: process.pid } - await write(initialized) - return - } - if (!keepInitialized(existing)) { - await Promise.all([rm(manifestPath(name), { force: true }), rm(controlPath(name), { force: true })]) - existing = undefined - } else { - let available = existing - if (existing.pid !== undefined && existing.pid !== process.pid) { - if (isProcessAlive(existing.pid)) throw new Error(`drive instance "${name}" is already starting`) - const { pid: _, ...released } = existing - available = released - } - if (options.temporary && available.pid === undefined) { - initialized = { ...available, pid: process.pid } - } else { - initialized = available - } - if (initialized !== existing) await write(initialized) - return - } - } - if (existing && isProcessAlive(existing.pid)) throw new Error(`drive instance "${name}" is already running`) - initialized = { - version: 1, - name, - createdAt: new Date().toISOString(), - cwd, - artifacts: await create(), - status: "initialized", - ...(options.temporary ? { temporary: true, pid: process.pid } : {}), - } - await Promise.all([rm(manifestPath(name), { force: true }), rm(controlPath(name), { force: true })]) - await write(initialized) - }) - if (!initialized) throw new Error(`failed to initialize drive instance "${name}"`) - return initialized -} - -export async function register(manifest: InstanceManifest) { - if (manifest.visible) { - const visible = (await listInstances()).find((instance) => instance.visible) - if (visible) throw new Error(`visible drive instance "${visible.name}" is already running`) - } - await withLock(manifest.name, false, async () => { - const existing = await read(manifestPath(manifest.name)) - if (existing?.status === "initialized" && existing.pid !== undefined && existing.pid !== manifest.pid) - throw new Error(`drive instance "${manifest.name}" changed ownership`) - if (existing && existing.status !== "initialized" && isProcessAlive(existing.pid)) - throw new Error(`drive instance "${manifest.name}" is already running`) - await Promise.all([ - rm(manifestPath(manifest.name), { force: true }), - rm(controlPath(manifest.name), { force: true }), - ]) - await write(manifest) - }) -} - -export async function markReady(name: string, pid: number) { - await markStatus(name, pid, "ready") -} - -export async function markStarting(name: string, pid: number) { - await markStatus(name, pid, "starting") -} - -async function markStatus(name: string, pid: number, status: InstanceManifest["status"]) { - await withLock(name, true, async () => { - const manifest = await read(manifestPath(name)) - if (!manifest || manifest.status === "initialized" || manifest.pid !== pid) - throw new Error(`drive instance "${name}" changed ownership`) - await write({ ...manifest, status }) - }) -} - -export async function resolveInstance(name?: string, options: { readonly ready?: boolean } = {}) { - const instances = await listInstances() - const manifest = name ? instances.find((item) => item.name === name) : instances.find((item) => item.visible) - if (!manifest) { - if (!name && instances.length > 0) - throw new Error( - `no visible drive instance is running; pass --name (${instances.map((item) => item.name).join(", ")})`, - ) - throw new Error(name ? `drive instance "${name}" was not found` : "no drive instances are running") - } - if (options.ready !== false && manifest.status !== "ready") - throw new Error(`drive instance "${manifest.name}" is still starting`) - return manifest -} - -export async function resolveVisibleInstance(options: { readonly ready?: boolean } = {}) { - const manifest = (await listInstances()).find((instance) => instance.visible) - if (manifest && options.ready !== false && manifest.status !== "ready") - throw new Error(`drive instance "${manifest.name}" is still starting`) - return manifest -} - -export async function listInstances() { - return (await listManifests()).filter((manifest): manifest is InstanceManifest => manifest.status !== "initialized") -} - -export async function listManifests() { - await mkdir(registryDirectory(), { recursive: true }) - const files = await readdir(registryDirectory()) - const manifests = await Promise.all( - files - .filter((file) => file.endsWith(".json")) - .map(async (file) => { - const name = basename(file, ".json") - if (!isValidName(name)) { - await rm(join(registryDirectory(), file), { force: true }) - return undefined - } - const manifest = await read(join(registryDirectory(), file)) - if (manifest?.name === name) { - if (manifest.status === "initialized" && keepInitialized(manifest)) return manifest - if (manifest.status !== "initialized" && isProcessAlive(manifest.pid)) return manifest - } - await prune(name, manifest?.status === "initialized" ? undefined : manifest?.pid) - return undefined - }), - ) - const active = manifests.filter((manifest): manifest is Manifest => manifest !== undefined) - const names = new Set(active.map((manifest) => manifest.name)) - await Promise.all( - files - .filter((file) => file.endsWith(".sock")) - .flatMap((file) => { - const name = basename(file, ".sock") - if (!isValidName(name)) return [rm(join(registryDirectory(), file), { force: true })] - if (!names.has(name)) return [prune(name)] - return [] - }), - ) - return active.sort((a, b) => a.name.localeCompare(b.name)) -} - -export async function unregister(name: string, pid: number) { - await withLock(name, true, async () => { - const manifest = await read(manifestPath(name)) - if (!manifest || manifest.status === "initialized" || manifest.pid !== pid) return - await Promise.all([rm(manifestPath(name), { force: true }), rm(controlPath(name), { force: true })]) - }) -} - -async function prune(name: string, pid?: number) { - await withLock(name, true, async () => { - const manifest = await read(manifestPath(name)) - if (manifest?.status === "initialized") { - if (keepInitialized(manifest)) return - await Promise.all([rm(manifestPath(name), { force: true }), rm(controlPath(name), { force: true })]) - return - } - if (manifest && (manifest.pid !== pid || isProcessAlive(manifest.pid))) return - await Promise.all([rm(manifestPath(name), { force: true }), rm(controlPath(name), { force: true })]) - }) -} - -function keepInitialized(manifest: InitializedManifest) { - if (!manifest.temporary) return !legacyVisibleInitialized(manifest.name) - return manifest.pid !== undefined && isProcessAlive(manifest.pid) -} - -function legacyVisibleInitialized(name: string) { - return /^visible-\d+$/.test(name) -} - -async function write(manifest: Manifest) { - const file = manifestPath(manifest.name) - const temporary = `${file}.${process.pid}.${crypto.randomUUID()}.tmp` - try { - await Bun.write(temporary, `${JSON.stringify(manifest, undefined, 2)}\n`) - await rename(temporary, file) - } finally { - await rm(temporary, { force: true }) - } -} - -async function read(file: string): Promise { - const value: unknown = await Bun.file(file) - .json() - .catch(() => undefined) - if (isManifest(value)) return value - return undefined -} - -async function withLock(name: string, wait: boolean, task: () => Promise) { - await mkdir(registryDirectory(), { recursive: true }) - const lock = `${manifestPath(name)}.lock` - const deadline = Date.now() + 10_000 - while (true) { - const handle = await open(lock, "wx").catch((error: unknown) => { - if (isNodeError(error) && error.code === "EEXIST") return undefined - throw error - }) - if (handle) { - try { - await handle.writeFile(`${process.pid}\n`) - await task() - return - } finally { - await handle.close() - await rm(lock, { force: true }) - } - } - if (await staleLock(lock)) { - await rm(lock, { force: true }) - continue - } - if (!wait) throw new Error(`drive instance "${name}" is already starting`) - if (Date.now() >= deadline) throw new Error(`timed out updating drive instance "${name}"`) - await Bun.sleep(10) - } -} - -async function staleLock(file: string) { - const pid = Number.parseInt( - await Bun.file(file) - .text() - .catch(() => ""), - 10, - ) - return Number.isInteger(pid) && !isProcessAlive(pid) -} - -function isManifest(value: unknown): value is Manifest { - if (typeof value !== "object" || value === null) return false - const manifest = value as Partial - if (typeof manifest.name !== "string") return false - if (manifest.status === "initialized") return typeof manifest.artifacts === "string" - const instance = value as Partial - const endpoints = instance.endpoints - return typeof instance.pid === "number" && typeof endpoints?.ui === "string" && typeof endpoints.backend === "string" -} - -export function validateName(name: string) { - if (!isValidName(name)) - throw new Error("instance names must contain 1-64 letters, numbers, dots, underscores, or dashes") - return name -} - -export function isValidName(name: string) { - return /^[a-zA-Z0-9][a-zA-Z0-9._-]{0,63}$/.test(name) -} - -export function isProcessAlive(pid: number) { - try { - process.kill(pid, 0) - return true - } catch { - return false - } -} - -function isNodeError(error: unknown): error is NodeJS.ErrnoException { - return error instanceof Error && "code" in error -} diff --git a/packages/drive/src/instance/runtime.ts b/packages/drive/src/instance/runtime.ts deleted file mode 100644 index 276694e1af8..00000000000 --- a/packages/drive/src/instance/runtime.ts +++ /dev/null @@ -1,534 +0,0 @@ -import { join, resolve } from "node:path" -import * as Config from "effect/Config" -import * as Data from "effect/Data" -import * as Effect from "effect/Effect" -import * as Exit from "effect/Exit" -import * as FileSystem from "effect/FileSystem" -import * as Ref from "effect/Ref" -import * as Semaphore from "effect/Semaphore" -import * as Scope from "effect/Scope" -import { ChildProcessSpawner } from "effect/unstable/process" -import { prepareDev } from "./dev.js" -import { instanceError, OpenCodeInstanceError } from "./error.js" -import { runMediaDirectory } from "./media.js" -import { prepareInstanceProject } from "./instance.js" -import * as Process from "./process.js" -import { freePort, waitForWebSocket } from "./readiness.js" -import { isValidName } from "./registry.js" -import { stopService } from "./service.js" -import type { RecordingPaths } from "../recording/finalize.js" -import { stripGitEnvironment } from "../script/project.js" -import * as ToolController from "../tool/controller.js" -import type * as Tool from "../tool/index.js" -import type { Frontend } from "../client/protocol.js" -import type { OpenCodeConfig, OpenCodeTuiConfig, Project, Setup } from "../project.js" - -type Viewport = Frontend.ResizeParams - -export { OpenCodeInstanceError } from "./error.js" - -export interface Options { - readonly artifacts: string - readonly name: string - readonly command?: ReadonlyArray - readonly dev?: string - readonly scripted?: boolean - readonly visible?: boolean - readonly record?: boolean - readonly viewport?: Viewport - readonly env?: Readonly> - readonly project?: Project - readonly config?: OpenCodeConfig - readonly tui?: OpenCodeTuiConfig - readonly setup?: Setup - readonly tools?: Tool.Configuration - readonly log?: (message: string) => void -} - -export interface TuiProcess { - readonly endpoint: string - readonly media: string - readonly process: Process.Running - readonly recording?: RecordingPaths - readonly close: Effect.Effect -} - -export interface Instance { - readonly artifacts: string - readonly logs: string - readonly visible: boolean - readonly endpoints: { - readonly ui: string - readonly backend: string - } - readonly tools: Tool.StaticControls - readonly toolNames: ReadonlySet - readonly recording: Effect.Effect - readonly primary: Effect.Effect - readonly launchServer: Effect.Effect<{ readonly endpoint: string }, OpenCodeInstanceError> - readonly killServer: Effect.Effect - readonly launchTui: ( - name: string, - options?: { readonly record?: boolean; readonly viewport?: Viewport }, - ) => Effect.Effect - readonly waitForDrive: ( - requirement?: "ui" | "backend" | "both", - timeout?: number, - ) => Effect.Effect - readonly restart: Effect.Effect - readonly wait: Effect.Effect - readonly stop: Effect.Effect -} - -interface StateFields { - readonly recording?: RecordingPaths - readonly server?: Process.Running - readonly pendingServer?: Process.Running - readonly primary?: Process.Running - readonly tuis: ReadonlyMap - readonly pendingTuis: ReadonlyMap -} - -type State = Data.TaggedEnum<{ - readonly Running: StateFields - readonly Stopping: StateFields - readonly Stopped: StateFields -}> - -const State = Data.taggedEnum() - -export const make = Effect.fn("OpenCodeInstance.make")(function* ( - options: Options, - configuredTools?: ToolController.Controller, -) { - const artifacts = resolve(options.artifacts) - const logs = join(artifacts, "logs") - const drive = join(artifacts, "drive") - const files = join(artifacts, "files") - let mediaGeneration = 0 - let media = runMediaDirectory(artifacts, mediaGeneration) - const uiPort = yield* freePort - const endpoints = { - ui: `ws://127.0.0.1:${uiPort}`, - backend: `ws://127.0.0.1:${yield* distinctPort(uiPort)}`, - } - const toolController = configuredTools ?? (yield* ToolController.make(options.tools)) - const database = yield* Config.string("OPENCODE_DRIVE_DB").pipe(Config.withDefault(":memory:")) - const setup = - configuredTools === undefined ? ToolController.composeSetup(toolController, options.setup) : options.setup - if (options.project !== undefined || options.config !== undefined || options.tui !== undefined || setup !== undefined) - yield* prepareInstanceProject({ - artifacts, - project: options.project, - config: options.config, - tui: options.tui, - setup, - }).pipe(Effect.mapError((cause) => instanceError("prepare project", cause))) - const dev = options.dev !== undefined ? yield* prepareDev(artifacts, options.dev) : undefined - const environment = stripGitEnvironment({ - ...process.env, - ...options.env, - BUN_OPTIONS: - dev === undefined - ? (options.env?.BUN_OPTIONS ?? process.env.BUN_OPTIONS) - : [options.env?.BUN_OPTIONS ?? process.env.BUN_OPTIONS, ...dev.preloads].filter(Boolean).join(" "), - OPENCODE_SIMULATE: "1", - OPENCODE_DRIVE_SCRIPTED: options.scripted ? "1" : undefined, - DRIVE_REGISTRY_DIR: drive, - OPENCODE_DRIVE_RENDERER: options.visible ? "visible" : "headless", - OPENCODE_DRIVE_DEV: options.dev, - OPENCODE_CONFIG_DIR: join(files, ".opencode"), - OPENCODE_DB: database, - OPENCODE_LOG_LEVEL: !options.visible ? "DEBUG" : process.env.OPENCODE_LOG_LEVEL, - OPENCODE_TEST_HOME: artifacts, - XDG_CACHE_HOME: join(artifacts, "home", ".cache"), - XDG_CONFIG_HOME: join(artifacts, "home", ".config"), - XDG_DATA_HOME: logs, - XDG_STATE_HOME: join(artifacts, "home", ".local", "state"), - }) - const command = dev !== undefined ? dev.command : options.command?.length ? [...options.command] : ["opencode2"] - const scriptedCommand = dev?.scriptedCommand ?? command - const initialRecording = options.record ? recordingPaths(media) : undefined - const processSpawner = yield* ChildProcessSpawner.ChildProcessSpawner - const fileSystem = yield* FileSystem.FileSystem - const state = yield* Ref.make( - State.Running({ - recording: initialRecording, - tuis: new Map(), - pendingTuis: new Map(), - }), - ) - const lock = yield* Semaphore.make(1) - const instanceScope = yield* Scope.Scope - - const writeManifest = Effect.fn("OpenCodeInstance.writeManifest")(function* ( - name: string, - manifestEndpoints: { readonly ui: string; readonly backend: string }, - recording?: RecordingPaths, - viewport?: Viewport, - ) { - yield* Effect.tryPromise({ - try: () => - Bun.write( - join(drive, `${name}.json`), - `${JSON.stringify( - { - endpoints: manifestEndpoints, - media, - ...(viewport ? { viewport } : {}), - ...(recording ? { recording: { timeline: recording.timeline } } : {}), - }, - undefined, - 2, - )}\n`, - ), - catch: (cause) => instanceError("write manifest", cause), - }) - }) - - const spawn = Effect.fn("OpenCodeInstance.spawn")(function* ( - driveName: string, - appCommand: ReadonlyArray, - logName: string, - visible: boolean, - ) { - options.log?.(`launching ${logName}`) - return yield* Process.spawn(appCommand, { - cwd: files, - env: { - ...environment, - OPENCODE_DRIVE: driveName, - OPENCODE_DRIVE_MEDIA_DIR: media, - }, - stdin: visible ? "inherit" : "ignore", - stdout: visible ? "inherit" : { path: join(logs, `${logName}.stdout.log`) }, - stderr: visible ? "inherit" : { path: join(logs, `${logName}.stderr.log`) }, - }).pipe( - Effect.provideService(ChildProcessSpawner.ChildProcessSpawner, processSpawner), - Effect.provideService(FileSystem.FileSystem, fileSystem), - Scope.provide(instanceScope), - Effect.mapError((cause) => instanceError(`launch ${logName}`, cause)), - ) - }) - - const launchDefault = Effect.fn("OpenCodeInstance.launchDefault")(function* (recording: RecordingPaths | undefined) { - yield* writeManifest(options.name, endpoints, recording, options.viewport) - options.log?.("launching OpenCode") - return yield* spawn(options.name, command, "opencode", options.visible ?? false) - }) - - if (!options.scripted) { - const primary = yield* launchDefault(initialRecording) - yield* Ref.update(state, (current) => ({ ...current, primary })) - } - - const launchServer = Effect.gen(function* () { - const server = yield* lock.withPermit( - Effect.gen(function* () { - const current = yield* Ref.get(state) - if (!options.scripted) - return yield* Effect.fail(instanceError("launch server", "server launch requires scripted mode")) - if (current._tag !== "Running") - return yield* Effect.fail(instanceError("launch server", "the instance is stopping")) - if (current.server !== undefined || current.pendingServer !== undefined) - return yield* Effect.fail(instanceError("launch server", "the script server has already been launched")) - const name = processDriveName(options.name, "service") - const serverCommand = [...scriptedCommand, "serve", "--service", "--port", String(yield* freePort)] - yield* writeManifest(name, { - ui: `ws://127.0.0.1:${yield* freePort}`, - backend: endpoints.backend, - }) - options.log?.("launching script server") - const server = yield* spawn(name, serverCommand, "service", false) - yield* Ref.update(state, (value) => ({ ...value, pendingServer: server })) - return server - }), - ) - const removePending = lock.withPermit( - Ref.update(state, (value) => (value.pendingServer === server ? { ...value, pendingServer: undefined } : value)), - ) - yield* waitForWebSocket(endpoints.backend, server, 60_000).pipe( - Effect.onError(() => removePending.pipe(Effect.andThen(server.terminate), Effect.ignore)), - Effect.mapError((cause) => instanceError("wait for server", cause)), - ) - const committed = yield* lock.withPermit( - Effect.gen(function* () { - const current = yield* Ref.get(state) - if (current._tag !== "Running" || current.pendingServer !== server) return false - yield* Ref.set(state, { - ...current, - pendingServer: undefined, - server, - primary: server, - }) - return true - }), - ) - if (!committed) { - yield* server.terminate.pipe(Effect.ignore) - return yield* Effect.fail(instanceError("launch server", "the instance is stopping")) - } - yield* server.exitCode.pipe( - Effect.ignore, - Effect.andThen(Ref.update(state, (value) => (value.server === server ? { ...value, server: undefined } : value))), - Effect.forkIn(instanceScope), - ) - options.log?.("script server ready") - return { endpoint: endpoints.backend } - }) - - const killServer = lock.withPermit( - Effect.gen(function* () { - const current = yield* Ref.get(state) - if (!options.scripted) - return yield* Effect.fail(instanceError("kill server", "server kill requires scripted mode")) - if (current.server === undefined) - return yield* Effect.fail(instanceError("kill server", "the script server is not running")) - options.log?.("stopping script server") - yield* current.server.terminate.pipe(Effect.mapError((cause) => instanceError("kill server", cause))) - yield* Ref.update(state, (value) => ({ - ...value, - server: undefined, - primary: value.primary === current.server ? undefined : value.primary, - })) - return undefined - }), - ) - - const launchTui = Effect.fn("OpenCodeInstance.launchTui")(function* ( - name: string, - tuiOptions: { readonly record?: boolean; readonly viewport?: Viewport } = {}, - ) { - const pending = yield* lock.withPermit( - Effect.gen(function* () { - const current = yield* Ref.get(state) - if (!options.scripted) - return yield* Effect.fail(instanceError("launch TUI", "TUI launch requires scripted mode")) - if (current._tag !== "Running") - return yield* Effect.fail(instanceError("launch TUI", "the instance is stopping")) - if (current.server === undefined) - return yield* Effect.fail(instanceError("launch TUI", "launch the script server before launching TUIs")) - if (!isValidName(name)) return yield* Effect.fail(instanceError("launch TUI", `invalid TUI name: ${name}`)) - if (current.tuis.has(name) || current.pendingTuis.has(name)) - return yield* Effect.fail(instanceError("launch TUI", `TUI "${name}" is already running`)) - if (options.visible && current.tuis.size + current.pendingTuis.size > 0) - return yield* Effect.fail(instanceError("launch TUI", "multiple TUIs require headless scripted mode")) - const primary = current.tuis.size + current.pendingTuis.size === 0 - const tuiEndpoints = { - ui: primary ? endpoints.ui : `ws://127.0.0.1:${yield* freePort}`, - backend: endpoints.backend, - } - const driveName = processDriveName(options.name, `tui-${name}`) - const recording = tuiOptions.record ? recordingPaths(media) : primary ? current.recording : undefined - yield* writeManifest(driveName, tuiEndpoints, recording, tuiOptions.viewport ?? options.viewport) - options.log?.(`launching TUI ${name}`) - const tui = yield* spawn(driveName, scriptedCommand, `tui-${name}`, options.visible ?? false) - yield* Ref.update(state, (value) => ({ - ...value, - pendingTuis: new Map(value.pendingTuis).set(name, tui), - })) - return { tui, tuiEndpoints, primary, recording, media } - }), - ) - const { tui, tuiEndpoints, primary, recording, media: tuiMedia } = pending - const removePending = lock.withPermit( - Ref.update(state, (value) => { - if (value.pendingTuis.get(name) !== tui) return value - const pendingTuis = new Map(value.pendingTuis) - pendingTuis.delete(name) - return { ...value, pendingTuis } - }), - ) - yield* waitForWebSocket(tuiEndpoints.ui, tui, 60_000).pipe( - Effect.onError(() => removePending.pipe(Effect.andThen(tui.terminate), Effect.ignore)), - Effect.mapError((cause) => instanceError("wait for TUI", cause)), - ) - const committed = yield* lock.withPermit( - Effect.gen(function* () { - const current = yield* Ref.get(state) - if (current._tag !== "Running" || current.pendingTuis.get(name) !== tui) return false - const pendingTuis = new Map(current.pendingTuis) - pendingTuis.delete(name) - yield* Ref.set(state, { - ...current, - primary: primary ? tui : current.primary, - tuis: new Map(current.tuis).set(name, tui), - pendingTuis, - }) - return true - }), - ) - if (!committed) { - yield* tui.terminate.pipe(Effect.ignore) - return yield* Effect.fail(instanceError("launch TUI", "the instance is stopping")) - } - yield* tui.exitCode.pipe( - Effect.ignore, - Effect.andThen( - Ref.update(state, (value) => { - if (value.tuis.get(name) !== tui) return value - const tuis = new Map(value.tuis) - tuis.delete(name) - return { ...value, tuis } - }), - ), - Effect.forkIn(instanceScope), - ) - options.log?.(`TUI ${name} ready`) - const close = Effect.gen(function* () { - yield* Ref.update(state, (value) => { - if (value.tuis.get(name) !== tui) return value - const tuis = new Map(value.tuis) - tuis.delete(name) - return { ...value, tuis } - }) - yield* tui.terminate.pipe(Effect.mapError((cause) => instanceError("close TUI", cause))) - }) - return { - endpoint: tuiEndpoints.ui, - media: tuiMedia, - process: tui, - recording, - close, - } satisfies TuiProcess - }) - - const waitForDrive = Effect.fn("OpenCodeInstance.waitForDrive")(function* ( - requirement: "ui" | "backend" | "both" = "both", - timeout = 60_000, - ) { - const current = yield* Ref.get(state) - const process = current.primary - if (process === undefined) - return yield* Effect.fail(instanceError("wait for drive", "no OpenCode process has been launched")) - const urls = requirement === "both" ? [endpoints.ui, endpoints.backend] : [endpoints[requirement]] - yield* Effect.forEach(urls, (url) => waitForWebSocket(url, process, timeout), { - concurrency: "unbounded", - discard: true, - }).pipe(Effect.mapError((cause) => instanceError("wait for drive", cause))) - return undefined - }) - - const restart = lock.withPermit( - Effect.gen(function* () { - const current = yield* Ref.get(state) - if (current._tag !== "Running") return yield* Effect.fail(instanceError("restart", "the instance is stopping")) - options.log?.("restarting OpenCode") - const processes = new Set([...current.tuis.values(), ...current.pendingTuis.values()]) - if (current.server !== undefined) processes.add(current.server) - if (current.pendingServer !== undefined) processes.add(current.pendingServer) - if (!options.scripted && current.primary !== undefined) processes.add(current.primary) - const exits = yield* Effect.forEach(processes, (process) => Effect.exit(process.terminate), { - concurrency: "unbounded", - }) - const combined = Exit.asVoidAll(exits) - if (Exit.isFailure(combined)) - return yield* Effect.failCause(combined.cause).pipe(Effect.mapError((cause) => instanceError("restart", cause))) - media = runMediaDirectory(artifacts, ++mediaGeneration) - const recording = options.record ? recordingPaths(media) : undefined - yield* Ref.set( - state, - State.Running({ - recording, - tuis: new Map(), - pendingTuis: new Map(), - }), - ) - if (!options.scripted) { - const primary = yield* launchDefault(recording) - yield* Ref.update(state, (value) => ({ ...value, primary })) - yield* waitForDrive("both") - options.log?.("OpenCode ready") - } - return undefined - }), - ) - - const wait: Effect.Effect = Effect.suspend(() => - Effect.gen(function* () { - const current = yield* Ref.get(state) - if (current.primary === undefined) - return yield* Effect.fail(instanceError("wait", "no OpenCode process has been launched")) - const active = current.primary - const status = yield* active.exitCode.pipe(Effect.mapError((cause) => instanceError("wait", cause))) - const next = yield* Ref.get(state) - if (next.primary !== active && next._tag === "Running") return yield* wait - return status - }), - ) - - const stop = lock.withPermit( - Effect.gen(function* () { - const current = yield* Ref.get(state) - if (current._tag === "Stopped") return undefined - yield* Ref.set(state, State.Stopping(current)) - options.log?.("stopping OpenCode") - const processes = new Set(current.tuis.values()) - for (const process of current.pendingTuis.values()) processes.add(process) - if (current.server !== undefined) processes.add(current.server) - if (current.pendingServer !== undefined) processes.add(current.pendingServer) - if (!options.scripted && current.primary !== undefined) processes.add(current.primary) - const exits = yield* Effect.forEach(processes, (process) => Effect.exit(process.terminate), { - concurrency: "unbounded", - }) - const serviceExit = yield* Effect.exit(stopService(join(artifacts, "home", ".local", "state"))) - yield* Ref.set( - state, - State.Stopped({ - recording: current.recording, - tuis: new Map(), - pendingTuis: new Map(), - }), - ) - const combined = Exit.asVoidAll([...exits, serviceExit]) - if (Exit.isFailure(combined)) - return yield* Effect.failCause(combined.cause).pipe(Effect.mapError((cause) => instanceError("stop", cause))) - return undefined - }), - ) - yield* Effect.addFinalizer(() => - stop.pipe(Effect.catchCause((cause) => Effect.logError("OpenCode instance cleanup failed", cause))), - ) - - return { - artifacts, - logs, - visible: options.visible ?? false, - endpoints, - tools: toolController.controls, - toolNames: toolController.names, - recording: Ref.get(state).pipe(Effect.map((current) => current.recording)), - primary: Ref.get(state).pipe( - Effect.flatMap((current) => - current.primary === undefined - ? Effect.fail(instanceError("primary", "no OpenCode process has been launched")) - : Effect.succeed(current.primary), - ), - ), - launchServer, - killServer, - launchTui, - waitForDrive, - restart, - wait, - stop, - } satisfies Instance -}) - -function processDriveName(instance: string, role: string) { - const suffix = crypto.randomUUID().slice(0, 8) - return `${instance.slice(0, 36)}-${role.slice(0, 17)}-${suffix}` -} - -function recordingPaths(directory: string): RecordingPaths { - const id = crypto.randomUUID() - return { - timeline: join(directory, `recording-${id}.jsonl`), - video: join(directory, `recording-${id}.mp4`), - } -} - -export * as OpenCodeInstance from "./runtime.js" - -const distinctPort = (excluded: number): Effect.Effect => - freePort.pipe(Effect.flatMap((port) => (port === excluded ? distinctPort(excluded) : Effect.succeed(port)))) diff --git a/packages/drive/src/instance/service.ts b/packages/drive/src/instance/service.ts deleted file mode 100644 index 72b045db5da..00000000000 --- a/packages/drive/src/instance/service.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { join } from "node:path" -import * as Effect from "effect/Effect" -import * as Schedule from "effect/Schedule" -import { instanceError } from "./error.js" -import { isProcessAlive } from "./registry.js" - -/** - * Terminates any OpenCode managed services discovered through the instance's - * private state directory, escalating from SIGTERM to SIGKILL. - */ -export const stopService = Effect.fn("OpenCodeInstance.stopService")(function* (state: string) { - const files = [ - join(state, "opencode", "server.json"), - join(state, "opencode", "service-local.json"), - join(state, "opencode", "service.json"), - ] - const info = yield* Effect.tryPromise({ - try: () => - Promise.all( - files.map((file) => - Bun.file(file) - .json() - .catch(() => undefined), - ), - ), - catch: (cause) => instanceError("read service state", cause), - }) - yield* Effect.forEach( - info, - (value) => { - if (!isServiceInfo(value)) return Effect.void - return Effect.gen(function* () { - yield* Effect.sync(() => { - try { - process.kill(value.pid, "SIGTERM") - } catch { - return - } - }) - yield* Effect.suspend(() => (isProcessAlive(value.pid) ? Effect.fail(undefined) : Effect.void)).pipe( - Effect.retry(Schedule.spaced(25).pipe(Schedule.upTo({ times: 39 }))), - Effect.catch(() => Effect.void), - ) - if (isProcessAlive(value.pid)) yield* Effect.sync(() => process.kill(value.pid, "SIGKILL")) - }) - }, - { concurrency: "unbounded", discard: true }, - ) -}) - -function isServiceInfo(value: unknown): value is { readonly pid: number } { - return typeof value === "object" && value !== null && "pid" in value && typeof value.pid === "number" -} diff --git a/packages/drive/src/llm/index.ts b/packages/drive/src/llm/index.ts deleted file mode 100644 index 444354d9956..00000000000 --- a/packages/drive/src/llm/index.ts +++ /dev/null @@ -1,100 +0,0 @@ -import * as Schema from "effect/Schema" - -const NonNegativeMilliseconds = Schema.Finite.check(Schema.isGreaterThanOrEqualTo(0)) - -const PositiveInteger = Schema.Int.check(Schema.isGreaterThanOrEqualTo(1)) - -const NonNegativeInteger = Schema.Int.check(Schema.isGreaterThanOrEqualTo(0)) - -export const StreamOptions = Schema.Struct({ - delay: Schema.optionalKey(NonNegativeMilliseconds), - chunkSize: Schema.optionalKey(PositiveInteger), -}) -export interface StreamOptions extends Schema.Schema.Type {} - -export const Text = Schema.Struct({ - type: Schema.Literal("text"), - text: Schema.String, - options: Schema.optionalKey(StreamOptions), -}) -export interface Text extends Schema.Schema.Type {} - -export const Reasoning = Schema.Struct({ - type: Schema.Literal("reasoning"), - text: Schema.String, - options: Schema.optionalKey(StreamOptions), -}) -export interface Reasoning extends Schema.Schema.Type {} - -export const Pause = Schema.Struct({ - type: Schema.Literal("pause"), - milliseconds: NonNegativeMilliseconds, -}) -export interface Pause extends Schema.Schema.Type {} - -export const ToolCall = Schema.Struct({ - type: Schema.Literal("toolCall"), - index: NonNegativeInteger, - id: Schema.String, - name: Schema.String, - input: Schema.Json, - options: Schema.optionalKey(StreamOptions), -}) -export interface ToolCall extends Schema.Schema.Type {} -export type ToolCallInput = Omit - -export const Raw = Schema.Struct({ - type: Schema.Literal("raw"), - chunk: Schema.Json, -}) -export interface Raw extends Schema.Schema.Type {} - -export const FinishReason = Schema.Literals(["stop", "tool-calls", "length", "content-filter"]) -export type FinishReason = Schema.Schema.Type - -export const Finish = Schema.Struct({ - type: Schema.Literal("finish"), - reason: Schema.optionalKey(FinishReason), -}) -export interface Finish extends Schema.Schema.Type {} - -export const Disconnect = Schema.Struct({ - type: Schema.Literal("disconnect"), -}) -export interface Disconnect extends Schema.Schema.Type {} - -export const Output = Schema.Union([Text, Reasoning, Pause, ToolCall, Raw, Finish, Disconnect]) -export type Output = Schema.Schema.Type - -export const text = (text: string, options?: StreamOptions): Text => - Text.make({ - type: "text", - text, - ...(options === undefined ? {} : { options }), - }) - -export const reasoning = (text: string, options?: StreamOptions): Reasoning => - Reasoning.make({ - type: "reasoning", - text, - ...(options === undefined ? {} : { options }), - }) - -export const pause = (milliseconds: number): Pause => Pause.make({ type: "pause", milliseconds }) - -export const toolCall = (call: ToolCallInput, options?: StreamOptions): ToolCall => - ToolCall.make({ - ...call, - type: "toolCall", - ...(options === undefined ? {} : { options }), - }) - -export const raw = (chunk: Schema.Json): Raw => Raw.make({ type: "raw", chunk }) - -export const finish = (reason?: FinishReason): Finish => - Finish.make({ - type: "finish", - ...(reason === undefined ? {} : { reason }), - }) - -export const disconnect = (): Disconnect => Disconnect.make({ type: "disconnect" }) diff --git a/packages/drive/src/llm/internal.ts b/packages/drive/src/llm/internal.ts deleted file mode 100644 index 2ae93036fe2..00000000000 --- a/packages/drive/src/llm/internal.ts +++ /dev/null @@ -1,40 +0,0 @@ -export function isTitleRequest(body: unknown) { - if (!isRecord(body) || !Array.isArray(body.messages)) return false - const first = body.messages.find(isMessageObject) - const firstContent = messageContent(first) - if (first?.role === "user" && firstContent?.startsWith("Generate a title for this conversation:")) return true - const system = body.messages.find((message) => isMessageObject(message) && message.role === "system") - return messageContent(system)?.startsWith("You are a title generator.") ?? false -} - -export function* chunkText(text: string, chunkSize: number) { - const characters = Array.from(text) - for (let index = 0; index < characters.length; ) { - const size = Math.max(1, chunkSize + Math.floor(Math.random() * 11) - 5) - const end = Math.min(characters.length, index + size) - yield characters.slice(index, end).join("") - index = end - } -} - -function isMessageObject(value: unknown) { - return isRecord(value) && typeof value.role === "string" -} - -function messageContent(message: unknown): string | undefined { - if (!isRecord(message)) return undefined - const content = message.content - if (typeof content === "string") return content - if (!Array.isArray(content)) return undefined - return content - .map((part) => { - if (typeof part === "string") return part - if (isRecord(part) && typeof part.text === "string") return part.text - return "" - }) - .join("") -} - -function isRecord(value: unknown): value is Readonly> { - return typeof value === "object" && value !== null && !Array.isArray(value) -} diff --git a/packages/drive/src/log.ts b/packages/drive/src/log.ts deleted file mode 100644 index c1c0ef0490a..00000000000 --- a/packages/drive/src/log.ts +++ /dev/null @@ -1,72 +0,0 @@ -import { appendFileSync, mkdirSync } from "node:fs" -import { readdir } from "node:fs/promises" -import { dirname, join } from "node:path" - -const prefix = "opencode-drive" -let currentLogFile = process.env.OPENCODE_DRIVE_LOG - -export function driveLogFile(artifacts: string) { - return join(artifacts, "logs", "opencode-drive.log") -} - -export async function opencodeLogFile(artifacts: string) { - const directory = join(artifacts, "logs", "opencode", "log") - const pattern = join(directory, "opencode*.log") - try { - const matches = (await readdir(directory)) - .filter((entry) => /^opencode.*\.log$/.test(entry)) - .sort() - .map((entry) => join(directory, entry)) - return matches.at(-1) ?? pattern - } catch { - return pattern - } -} - -export async function logReadyPaths(artifacts: string, options?: { readonly terminal?: boolean }) { - logSuccess(`opencode instance logs: ${await opencodeLogFile(artifacts)}`, options) - logSuccess(`current run script logs: ${driveLogFile(artifacts)}`, options) -} - -export function configureLogFile(artifacts: string) { - currentLogFile = driveLogFile(artifacts) - process.env.OPENCODE_DRIVE_LOG = currentLogFile - return currentLogFile -} - -export function logSuccess(message: string, options: { readonly terminal?: boolean } = {}) { - const line = `${prefix}: ${message}` - if (options.terminal !== false) console.error(process.stderr.isTTY ? `\x1b[32m${line}\x1b[0m` : line) - append("INFO", message) -} - -export function logError(message: string) { - const line = `error: ${message}` - console.error(process.stderr.isTTY ? `\x1b[31m${line}\x1b[0m` : line) - append("ERROR", message) - appendOwner(message) -} - -function appendOwner(message: string) { - const ownerLog = process.env.OPENCODE_DRIVE_OWNER_LOG - if (!ownerLog) return - appendBestEffort(ownerLog, `${message}\n`) -} - -export function recordLog(level: "INFO" | "ERROR", message: string) { - append(level, message) -} - -function append(level: "INFO" | "ERROR", message: string) { - if (!currentLogFile) return - appendBestEffort(currentLogFile, `[${new Date().toISOString()}] ${level} ${message}\n`) -} - -function appendBestEffort(path: string, contents: string) { - try { - mkdirSync(dirname(path), { recursive: true }) - appendFileSync(path, contents) - } catch { - // Logging must not change CLI behavior. - } -} diff --git a/packages/drive/src/project.ts b/packages/drive/src/project.ts deleted file mode 100644 index c853fb5b4b4..00000000000 --- a/packages/drive/src/project.ts +++ /dev/null @@ -1,46 +0,0 @@ -import type * as Effect from "effect/Effect" -import * as Schema from "effect/Schema" - -export type JsonValue = - | null - | boolean - | number - | string - | ReadonlyArray - | { readonly [key: string]: JsonValue } - -export type JsonObject = { [key: string]: JsonValue } - -/** OpenCode's semantic project configuration, written to opencode.jsonc. */ -export interface OpenCodeConfig extends JsonObject {} - -/** OpenCode's semantic TUI configuration, written to tui.jsonc. */ -export interface OpenCodeTuiConfig extends JsonObject {} - -export class FileSystemError extends Schema.TaggedErrorClass()("FileSystemError", { - path: Schema.String, - cause: Schema.Defect(), - message: Schema.String, -}) {} - -export interface ProjectFileSystem { - /** Writes inside the isolated project and creates parent directories. */ - writeFile(path: string, contents: string | Uint8Array): Effect.Effect -} - -export interface SetupContext { - readonly fs: ProjectFileSystem - /** The current OpenCode config object. Mutate it to customize the run. */ - readonly config: OpenCodeConfig - /** The current OpenCode TUI config object. Mutate it to customize the run. */ - readonly tuiConfig: OpenCodeTuiConfig -} - -export interface Project { - /** Files written into the isolated project before setup runs. */ - readonly files?: Readonly> - /** Initializes the project as a Git repository and commits its pre-launch state. */ - readonly git?: boolean -} - -export type Setup = (context: SetupContext) => Effect.Effect diff --git a/packages/drive/src/recording/decode.ts b/packages/drive/src/recording/decode.ts deleted file mode 100644 index 06af9ce9acb..00000000000 --- a/packages/drive/src/recording/decode.ts +++ /dev/null @@ -1,109 +0,0 @@ -import { createReadStream } from "node:fs" -import type { TimelineHeader, TimelineOutput, TimelineRecord, TimelineResize } from "./types.js" - -function fail(line: number, message: string): never { - throw new Error(`Invalid recording timeline at line ${line}: ${message}`) -} - -function isObject(value: unknown): value is Record { - return typeof value === "object" && value !== null && !Array.isArray(value) -} - -function hasExactKeys(value: Record, expected: string[]) { - const actual = Object.keys(value).sort() - return actual.length === expected.length && actual.every((key, index) => key === expected[index]) -} - -function positiveInteger(value: unknown): value is number { - return typeof value === "number" && Number.isSafeInteger(value) && value > 0 -} - -function nonnegativeInteger(value: unknown): value is number { - return typeof value === "number" && Number.isSafeInteger(value) && value >= 0 -} - -function canonicalBase64(value: string) { - if (value.length % 4 !== 0 || !/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(value)) { - return false - } - return Buffer.from(value, "base64").toString("base64") === value -} - -function parseRecord(text: string, line: number, first: boolean, previousAt: number): TimelineRecord { - let value: unknown - try { - value = JSON.parse(text) - } catch { - fail(line, "line is not valid JSON") - } - if (!isObject(value)) fail(line, "record must be an object") - - if (first) { - if (!hasExactKeys(value, ["cols", "encoding", "rows", "type", "version"])) fail(line, "invalid header fields") - if (value.type !== "header" || value.version !== 1 || value.encoding !== "base64") { - fail(line, "unsupported or missing header") - } - if (!positiveInteger(value.cols) || !positiveInteger(value.rows)) - fail(line, "cols and rows must be positive integers") - return { - type: "header", - version: 1, - cols: value.cols, - rows: value.rows, - encoding: "base64", - } satisfies TimelineHeader - } - - if (!nonnegativeInteger(value.at_ms)) fail(line, "at_ms must be a nonnegative integer") - if (value.at_ms < previousAt) fail(line, "event timestamps must be nondecreasing") - if (value.type === "output") { - if (!hasExactKeys(value, ["at_ms", "data", "type"])) fail(line, "invalid output fields") - if (typeof value.data !== "string" || !canonicalBase64(value.data)) fail(line, "data must be canonical base64") - return { type: "output", at_ms: value.at_ms, data: value.data } satisfies TimelineOutput - } - if (value.type === "resize") { - if (!hasExactKeys(value, ["at_ms", "cols", "rows", "type"])) fail(line, "invalid resize fields") - if (!positiveInteger(value.cols) || !positiveInteger(value.rows)) - fail(line, "cols and rows must be positive integers") - return { type: "resize", at_ms: value.at_ms, cols: value.cols, rows: value.rows } satisfies TimelineResize - } - return fail(line, "invalid event type") -} - -/** Decodes and validates a timeline without loading the complete file into memory. */ -export async function* decodeTimeline(path: string): AsyncGenerator { - const decoder = new TextDecoder("utf-8", { fatal: true }) - let buffered = "" - let line = 0 - let records = 0 - let previousAt = -1 - - const consume = (raw: string) => { - line++ - const text = raw.endsWith("\r") ? raw.slice(0, -1) : raw - if (text.length === 0) fail(line, "empty lines are not allowed") - const record = parseRecord(text, line, records === 0, previousAt) - records++ - if (record.type !== "header") previousAt = record.at_ms - return record - } - - try { - for await (const chunk of createReadStream(path)) { - buffered += decoder.decode(chunk, { stream: true }) - let newline: number - while ((newline = buffered.indexOf("\n")) !== -1) { - const raw = buffered.slice(0, newline) - buffered = buffered.slice(newline + 1) - yield consume(raw) - } - } - buffered += decoder.decode() - } catch (error) { - if (error instanceof TypeError) fail(line + 1, "file is not valid UTF-8") - throw error - } - - if (buffered.length > 0) yield consume(buffered) - if (records === 0) fail(1, "missing header") -} diff --git a/packages/drive/src/recording/encode.ts b/packages/drive/src/recording/encode.ts deleted file mode 100644 index e1c4c25c654..00000000000 --- a/packages/drive/src/recording/encode.ts +++ /dev/null @@ -1,98 +0,0 @@ -import { createHash } from "node:crypto" -import { mkdir, mkdtemp, rm, writeFile } from "node:fs/promises" -import { tmpdir } from "node:os" -import { dirname, join } from "node:path" -import { runFfmpeg } from "./ffmpeg.js" -import { resolveFps } from "./frame-rate.js" - -export interface ImageFrame { - readonly atMs: number - readonly key: string - readonly render: () => Buffer | Promise -} - -export interface EncodeOptions { - readonly ffmpegPath?: string - readonly fps?: number - readonly onProgress?: (percent: number) => void - readonly signal?: AbortSignal -} - -export async function encodeFrames(frames: ReadonlyArray, output: string, options: EncodeOptions = {}) { - const final = frames.at(-1) - if (!final) throw new Error("recording has no frames") - const fps = resolveFps(options.fps) - const frameIntervalMs = 1000 / fps - await mkdir(dirname(output), { recursive: true }) - const directory = await mkdtemp(join(tmpdir(), "opencode-drive-recording-")) - const progress = progressReporter(options.onProgress) - try { - const unique = new Map() - const renderedFrames: string[] = [] - for (const [index, frame] of frames.entries()) { - options.signal?.throwIfAborted() - let rendered = unique.get(frame.key) - if (!rendered) { - const hash = createHash("sha256").update(frame.key).digest("hex") - rendered = `unique-${hash}.png` - await writeFile(join(directory, rendered), await frame.render(), { signal: options.signal }) - unique.set(frame.key, rendered) - } - renderedFrames.push(rendered) - progress(((index + 1) / frames.length) * 90) - } - const concat = join(directory, "frames.ffconcat") - const firstAtMs = frames[0]!.atMs - const lastFrameIndex = Math.max(0, Math.ceil((final.atMs - firstAtMs) / frameIntervalMs - 1e-9)) - const entries: string[] = [] - let sourceIndex = 0 - for (let index = 0; index <= lastFrameIndex; index++) { - const atMs = firstAtMs + index * frameIntervalMs - while (frames[sourceIndex + 1] && frames[sourceIndex + 1]!.atMs <= atMs + 1e-9) sourceIndex++ - entries.push(`file ${renderedFrames[sourceIndex]!}`) - } - await writeFile(concat, `ffconcat version 1.0\n${entries.join("\n")}\n`, { - signal: options.signal, - }) - await runFfmpeg( - options.ffmpegPath ?? "ffmpeg", - [ - "-y", - "-r", - String(fps), - "-safe", - "0", - "-f", - "concat", - "-i", - concat, - "-c:v", - "libx264", - "-crf", - "0", - "-pix_fmt", - "yuv420p", - "-movflags", - "+faststart", - "-fps_mode", - "cfr", - output, - ], - options.signal, - ) - progress(100) - } finally { - await rm(directory, { recursive: true, force: true }) - } -} - -function progressReporter(onProgress?: (percent: number) => void) { - let reported = 0 - return (percent: number) => { - const target = Math.min(100, Math.floor(percent / 10) * 10) - while (reported < target) { - reported += 10 - onProgress?.(reported) - } - } -} diff --git a/packages/drive/src/recording/export.ts b/packages/drive/src/recording/export.ts deleted file mode 100644 index 7056bb3ce29..00000000000 --- a/packages/drive/src/recording/export.ts +++ /dev/null @@ -1,87 +0,0 @@ -import { createHash } from "node:crypto" -import { mkdir, writeFile } from "node:fs/promises" -import { dirname, extname } from "node:path" -import { encodeFrames } from "./encode.js" -import { replayRecording, type ReplayOptions } from "./replay.js" -import { CellHeight, CellWidth, renderFrame } from "./render.js" - -export interface ExportRecordingOptions extends ReplayOptions { - ffmpegPath?: string - header?: string | ((atMs: number) => string) - onProgress?: (percent: number) => void - signal?: AbortSignal -} - -export interface ExportRecordingResult { - frames: number - durationMs: number - width: number - height: number -} - -export async function exportRecording( - timelinePath: string, - outputPath: string, - options: ExportRecordingOptions = {}, -): Promise { - options.signal?.throwIfAborted() - const frames = await replayRecording(timelinePath, options) - options.signal?.throwIfAborted() - const final = frames.at(-1)! - let cols = 0 - let rows = 0 - for (const sample of frames) { - cols = Math.max(cols, sample.frame.cols) - rows = Math.max(rows, sample.frame.rows) - } - const extension = extname(outputPath).toLowerCase() - const header = (atMs: number) => (typeof options.header === "function" ? options.header(atMs) : options.header) - const progress = progressReporter(options.onProgress) - await mkdir(dirname(outputPath), { recursive: true }) - - if (extension === ".png") { - await writeFile(outputPath, renderFrame(final.frame, { cols, rows, header: header(final.atMs) }), { - signal: options.signal, - }) - progress(100) - } else if (extension === ".mp4") { - const frameKeys = new WeakMap() - await encodeFrames( - frames.map((sample) => { - const label = header(sample.atMs) - let frameKey = frameKeys.get(sample.frame) - if (frameKey === undefined) { - frameKey = createHash("sha256").update(JSON.stringify(sample.frame)).digest("hex") - frameKeys.set(sample.frame, frameKey) - } - return { - atMs: sample.atMs, - key: JSON.stringify([frameKey, label]), - render: () => renderFrame(sample.frame, { cols, rows, header: label }), - } - }), - outputPath, - options, - ) - } else { - throw new Error(`Unsupported recording output extension: ${extension || "(none)"}`) - } - - return { - frames: frames.length, - durationMs: final.atMs, - width: cols * CellWidth, - height: rows * CellHeight + (options.header ? 40 : 0), - } -} - -function progressReporter(onProgress?: (percent: number) => void) { - let reported = 0 - return (percent: number) => { - const target = Math.min(100, Math.floor(percent / 10) * 10) - while (reported < target) { - reported += 10 - onProgress?.(reported) - } - } -} diff --git a/packages/drive/src/recording/ffmpeg.ts b/packages/drive/src/recording/ffmpeg.ts deleted file mode 100644 index ba3bc2233fd..00000000000 --- a/packages/drive/src/recording/ffmpeg.ts +++ /dev/null @@ -1,24 +0,0 @@ -import * as NodeServices from "@effect/platform-node/NodeServices" -import * as Effect from "effect/Effect" -import * as Process from "../instance/process.js" - -export const ffmpeg = Effect.fn("Recording.ffmpeg")(function* (command: string, args: string[]) { - const output = yield* Process.run([command, ...args], { - stdout: "ignore", - stderrLimit: 16_384, - }) - if (output.status !== 0) - return yield* Effect.fail(new Error(`ffmpeg exited with code ${output.status}: ${output.stderr.trim()}`)) - return undefined -}) - -export function runFfmpeg(command: string, args: string[], signal?: AbortSignal) { - return Effect.runPromise(ffmpeg(command, args).pipe(Effect.provide(NodeServices.layer)), { signal }).then( - () => { - if (signal?.aborted) throw signal.reason ?? new Error("recording export aborted") - }, - (cause) => { - throw signal?.aborted ? (signal.reason ?? new Error("recording export aborted")) : cause - }, - ) -} diff --git a/packages/drive/src/recording/finalize.ts b/packages/drive/src/recording/finalize.ts deleted file mode 100644 index 548ef153de1..00000000000 --- a/packages/drive/src/recording/finalize.ts +++ /dev/null @@ -1,14 +0,0 @@ -import type { ExportRecordingOptions } from "./export.js" - -export interface RecordingPaths { - readonly timeline: string - readonly video: string -} - -export async function finalizeRecording(timeline: string, expected: RecordingPaths, options?: ExportRecordingOptions) { - if (timeline !== expected.timeline) throw new Error(`OpenCode returned an unexpected recording path: ${timeline}`) - if (!(await Bun.file(timeline).exists())) throw new Error(`OpenCode recording timeline was not created: ${timeline}`) - const { exportRecording } = await import("./export.js") - await exportRecording(timeline, expected.video, options) - return expected.video -} diff --git a/packages/drive/src/recording/frame-rate.ts b/packages/drive/src/recording/frame-rate.ts deleted file mode 100644 index 88f01b191cc..00000000000 --- a/packages/drive/src/recording/frame-rate.ts +++ /dev/null @@ -1,6 +0,0 @@ -const DefaultFps = 60 - -export function resolveFps(fps = DefaultFps) { - if (!Number.isFinite(fps) || fps <= 0) throw new Error("fps must be a positive finite number") - return fps -} diff --git a/packages/drive/src/recording/index.ts b/packages/drive/src/recording/index.ts deleted file mode 100644 index 8c80a55deca..00000000000 --- a/packages/drive/src/recording/index.ts +++ /dev/null @@ -1,14 +0,0 @@ -export { decodeTimeline } from "./decode.js" -export { encodeFrames, type EncodeOptions, type ImageFrame } from "./encode.js" -export { exportRecording, type ExportRecordingOptions, type ExportRecordingResult } from "./export.js" -export { joinFrames, renderFrame } from "./render.js" -export { replayRecording, type ReplayOptions } from "./replay.js" -export type { - CapturedFrame, - CapturedLine, - CapturedSpan, - SampledFrame, - TimelineHeader, - TimelineOutput, - TimelineRecord, -} from "./types.js" diff --git a/packages/drive/src/recording/render.ts b/packages/drive/src/recording/render.ts deleted file mode 100644 index e7c72ac2958..00000000000 --- a/packages/drive/src/recording/render.ts +++ /dev/null @@ -1,147 +0,0 @@ -import { fileURLToPath } from "node:url" -import { GlobalFonts, createCanvas, loadImage } from "@napi-rs/canvas" -import { - CellHeight, - CellWidth, - DimAlpha, - FontSize, - StrikethroughOffset, - TextStyle, - UnderlineOffset, - baselineOffset, - drawBlockGlyph, -} from "../frame/index.js" -import type { Frontend } from "../client/protocol.js" -import type { CapturedFrame } from "./types.js" - -export { CellHeight, CellWidth } from "../frame/index.js" - -const FontFamily = "OpenCode Mono" -const SymbolFontFamily = "OpenCode Symbols" -const SymbolFontFamily2 = "OpenCode Symbols 2" -const MathFontFamily = "OpenCode Math" -const FontStack = `"${FontFamily}", "${SymbolFontFamily}", "${SymbolFontFamily2}", "${MathFontFamily}"` - -const fontOverride = process.env["OPENCODE_DRIVE_FONT"] -const fontFiles = fontOverride - ? fontOverride - .split(",") - .map((file) => file.trim()) - .filter(Boolean) - : [ - "CommitMono-400-Regular.otf", - "CommitMono-700-Regular.otf", - "CommitMono-400-Italic.otf", - "CommitMono-700-Italic.otf", - ].map((file) => fileURLToPath(new URL(`../../assets/fonts/commit-mono/${file}`, import.meta.url))) - -if (fontFiles.length === 0) throw new Error("OPENCODE_DRIVE_FONT must contain at least one font file") -for (const file of fontFiles) { - if (!GlobalFonts.registerFromPath(file, FontFamily)) throw new Error(`Failed to register capture font: ${file}`) -} -for (const [file, family] of [ - ["NotoSansSymbols.ttf", SymbolFontFamily], - ["NotoSansSymbols2-Regular.ttf", SymbolFontFamily2], - ["NotoSansMath-Regular.ttf", MathFontFamily], -] as const) { - const path = fileURLToPath(new URL(`../../assets/fonts/noto/${file}`, import.meta.url)) - if (!GlobalFonts.registerFromPath(path, family)) throw new Error(`Failed to register capture symbol font: ${path}`) -} - -function color(value: number | Frontend.Color, opacity = 1) { - if (typeof value === "number") - return `rgba(${(value >> 16) & 255}, ${(value >> 8) & 255}, ${value & 255}, ${opacity})` - return `rgba(${value[0]}, ${value[1]}, ${value[2]}, ${(value[3] / 255) * opacity})` -} - -export interface RenderFrameOptions { - readonly cols?: number - readonly rows?: number - readonly header?: string -} - -export function renderFrame(frame: CapturedFrame | Frontend.CapturedFrame, options: RenderFrameOptions = {}): Buffer { - const cols = Math.max(frame.cols, options.cols ?? frame.cols) - const rows = Math.max(frame.rows, options.rows ?? frame.rows) - const headerHeight = options.header ? 40 : 0 - const canvas = createCanvas(cols * CellWidth, rows * CellHeight + headerHeight) - const context = canvas.getContext("2d") - context.fillStyle = "#080808" - context.fillRect(0, 0, canvas.width, canvas.height) - if (options.header) { - context.fillStyle = "#151515" - context.fillRect(0, 0, canvas.width, headerHeight) - context.font = `700 ${FontSize}px ${FontStack}` - context.fillStyle = "#d8d8d8" - context.textBaseline = "middle" - context.textAlign = "left" - context.fillText(options.header, 16, headerHeight / 2, canvas.width - 32) - } - context.textBaseline = "alphabetic" - context.textAlign = "center" - - frame.lines.forEach((line, row) => { - let column = 0 - for (const span of line.spans) { - const inverse = Boolean(span.attributes & TextStyle.inverse) - const hidden = Boolean(span.attributes & TextStyle.invisible) - const foreground = inverse ? span.bg : span.fg - const background = inverse ? span.fg : span.bg - const y = headerHeight + row * CellHeight - context.fillStyle = color(background) - context.fillRect(column * CellWidth, y, span.width * CellWidth, CellHeight) - if (hidden) { - column += span.width - continue - } - const italic = span.attributes & TextStyle.italic ? "italic " : "" - const weight = span.attributes & TextStyle.bold ? "700 " : "400 " - const font = `${italic}${weight}${FontSize}px ${FontStack}` - context.font = font - context.fillStyle = color(foreground, span.attributes & TextStyle.dim ? DimAlpha : 1) - const baseline = baselineOffset(context, font) - let remaining = span.width - for (const char of span.text) { - const cells = Math.min(Math.max(1, Bun.stringWidth(char)), remaining) - const x = column * CellWidth - if (!drawBlockGlyph(context, char, x, y, cells)) - context.fillText(char, x + (cells * CellWidth) / 2, y + baseline, cells * CellWidth) - if (span.attributes & TextStyle.underline) { - context.fillRect(x, y + UnderlineOffset, cells * CellWidth, 1) - } - if (span.attributes & TextStyle.strikethrough) { - context.fillRect(x, y + StrikethroughOffset, cells * CellWidth, 1) - } - column += cells - remaining -= cells - } - if (remaining > 0) { - column += remaining - } - } - }) - - const cursor = frame.cursor - if ("visible" in cursor && cursor.visible && cursor.row >= 0 && cursor.row < frame.rows) { - context.strokeStyle = "#d8d8d8" - context.lineWidth = 2 - context.strokeRect( - cursor.col * CellWidth + 1, - headerHeight + cursor.row * CellHeight + 1, - CellWidth - 2, - CellHeight - 2, - ) - } - return canvas.toBuffer("image/png") -} - -export async function joinFrames(left: Buffer, right: Buffer): Promise { - const [leftImage, rightImage] = await Promise.all([loadImage(left), loadImage(right)]) - if (leftImage.height !== rightImage.height) - throw new Error(`comparison recordings must have the same height: ${leftImage.height} !== ${rightImage.height}`) - const canvas = createCanvas(leftImage.width + rightImage.width, leftImage.height) - const context = canvas.getContext("2d") - context.drawImage(leftImage, 0, 0) - context.drawImage(rightImage, leftImage.width, 0) - return canvas.toBuffer("image/png") -} diff --git a/packages/drive/src/recording/replay.ts b/packages/drive/src/recording/replay.ts deleted file mode 100644 index 297e5b40787..00000000000 --- a/packages/drive/src/recording/replay.ts +++ /dev/null @@ -1,99 +0,0 @@ -import { decodeTimeline } from "./decode.js" -import { resolveFps } from "./frame-rate.js" -import { createTerminalParser, type TerminalParserFactory } from "./terminal.js" -import type { SampledFrame, TimelineHeader } from "./types.js" - -export interface ReplayOptions { - fps?: number - signal?: AbortSignal - startAtMs?: number - durationMs?: number -} - -interface InternalReplayOptions extends ReplayOptions { - terminalFactory?: TerminalParserFactory -} - -export async function replayRecording(path: string, options: ReplayOptions = {}): Promise { - return replay(path, options) -} - -export async function replay(path: string, options: InternalReplayOptions = {}): Promise { - options.signal?.throwIfAborted() - const interval = 1000 / resolveFps(options.fps) - if (options.startAtMs !== undefined && (!Number.isFinite(options.startAtMs) || options.startAtMs < 0)) - throw new Error("startAtMs must be a non-negative finite number") - if (options.durationMs !== undefined && (!Number.isFinite(options.durationMs) || options.durationMs < 0)) - throw new Error("durationMs must be a non-negative finite number") - const records = decodeTimeline(path)[Symbol.asyncIterator]() - const first = await records.next() - options.signal?.throwIfAborted() - if (first.done || first.value.type !== "header") throw new Error("Recording timeline is missing its header") - const header: TimelineHeader = first.value - const terminal = await (options.terminalFactory ?? createTerminalParser)(header.cols, header.rows) - options.signal?.throwIfAborted() - const frames: SampledFrame[] = [] - const startAt = options.startAtMs ?? 0 - const endAt = options.durationMs === undefined ? Number.POSITIVE_INFINITY : startAt + options.durationMs - let nextSample = startAt - let finalAt = 0 - let snapshot: SampledFrame["frame"] | undefined - let dirty = true - const currentSnapshot = () => { - if (dirty || !snapshot) { - snapshot = terminal.snapshot() - dirty = false - } - return snapshot - } - - for (;;) { - const next = await records.next() - options.signal?.throwIfAborted() - if (next.done) break - const event = next.value - if (event.type === "header") throw new Error("Recording timeline contains a second header") - if (event.at_ms > endAt) { - finalAt = endAt - break - } - while (nextSample < event.at_ms && nextSample <= endAt) { - frames.push({ atMs: nextSample, frame: currentSnapshot() }) - nextSample += interval - } - if (event.type === "output") { - const data = Buffer.from(event.data, "base64") - terminal.write(data) - if (data.length > 0) dirty = true - } else { - terminal.resize(event.cols, event.rows) - dirty = true - } - finalAt = event.at_ms - } - if (terminal.finish()) dirty = true - - const targetFinal = options.durationMs === undefined ? Math.max(startAt, finalAt) : endAt - while (nextSample <= targetFinal) { - frames.push({ atMs: nextSample, frame: currentSnapshot() }) - nextSample += interval - } - const final = frames.at(-1) - if (final && Math.abs(final.atMs - targetFinal) < 0.000_001) { - frames[frames.length - 1] = { ...final, atMs: targetFinal } - } else { - frames.push({ atMs: targetFinal, frame: currentSnapshot() }) - } - if (options.startAtMs !== undefined) { - return frames.map((sample) => ({ ...sample, atMs: sample.atMs - startAt })) - } - const firstVisible = frames.findIndex((sample) => - sample.frame.lines.some((line) => line.spans.some((span) => span.text.trim().length > 0)), - ) - if (firstVisible < 0) { - const final = frames.at(-1) - return final ? [{ ...final, atMs: 0 }] : [] - } - const start = frames[firstVisible]!.atMs - return frames.slice(firstVisible).map((sample) => ({ ...sample, atMs: sample.atMs - start })) -} diff --git a/packages/drive/src/recording/terminal.ts b/packages/drive/src/recording/terminal.ts deleted file mode 100644 index f5d51abc0c4..00000000000 --- a/packages/drive/src/recording/terminal.ts +++ /dev/null @@ -1,120 +0,0 @@ -import type { TerminalCore } from "@wterm/core" -import { GhosttyCore } from "@wterm/ghostty" -import type { CapturedFrame, CapturedSpan } from "./types.js" - -const DefaultForeground = 0xd8d8d8 -const DefaultBackground = 0x080808 -const SyncStart = Buffer.from("\x1b[?2026h") -const SyncEnd = Buffer.from("\x1b[?2026l") - -export interface TerminalParser { - write(data: Uint8Array): void - finish(): boolean - resize(cols: number, rows: number): void - snapshot(): CapturedFrame -} - -export type TerminalParserFactory = (cols: number, rows: number) => Promise - -function characterWidth(char: string) { - return Math.max(1, Bun.stringWidth(char)) -} - -function capture(core: TerminalCore): CapturedFrame { - const cols = core.getCols() - const rows = core.getRows() - const lines = Array.from({ length: rows }, (_, row) => { - const spans: CapturedSpan[] = [] - for (let col = 0; col < cols; ) { - const cell = core.getCell(row, col) - const text = String.fromCodePoint(cell.char || 32) - const width = Math.min(characterWidth(text), cols - col) - const next = { - text, - width, - fg: cell.fgRgb ?? DefaultForeground, - bg: cell.bgRgb ?? DefaultBackground, - attributes: cell.flags, - } - const previous = spans.at(-1) - if (previous && previous.fg === next.fg && previous.bg === next.bg && previous.attributes === next.attributes) { - previous.text += next.text - previous.width += width - } else { - spans.push(next) - } - col += width - } - return { spans } - }) - return { cols, rows, cursor: core.getCursor(), lines } -} - -class GhosttyTerminal implements TerminalParser { - private synchronized = false - private stable?: CapturedFrame - private pending = Buffer.alloc(0) - - constructor(private readonly core: TerminalCore) {} - - write(data: Uint8Array) { - const input = this.pending.length ? Buffer.concat([this.pending, data]) : Buffer.from(data) - this.pending = Buffer.alloc(0) - let offset = 0 - while (offset < input.length) { - const start = input.indexOf(SyncStart, offset) - const end = input.indexOf(SyncEnd, offset) - const marker = start === -1 ? end : end === -1 ? start : Math.min(start, end) - if (marker === -1) { - const keep = partialMarkerLength(input.subarray(offset)) - const boundary = input.length - keep - if (boundary > offset) this.core.writeRaw(input.subarray(offset, boundary)) - if (keep) this.pending = input.subarray(boundary) - return - } - if (marker > offset) this.core.writeRaw(input.subarray(offset, marker)) - if (marker === start) { - if (!this.synchronized) this.stable = capture(this.core) - this.synchronized = true - this.core.writeRaw(SyncStart) - offset = marker + SyncStart.length - } else { - this.core.writeRaw(SyncEnd) - this.synchronized = false - this.stable = undefined - offset = marker + SyncEnd.length - } - } - } - - finish() { - if (!this.pending.length) return false - this.core.writeRaw(this.pending) - this.pending = Buffer.alloc(0) - return true - } - - resize(cols: number, rows: number) { - this.core.resize(cols, rows) - if (this.synchronized) this.stable = capture(this.core) - } - - snapshot() { - return this.synchronized && this.stable ? structuredClone(this.stable) : capture(this.core) - } -} - -function partialMarkerLength(input: Uint8Array) { - const limit = Math.min(input.length, Math.max(SyncStart.length, SyncEnd.length) - 1) - for (let length = limit; length > 0; length--) { - const suffix = input.subarray(input.length - length) - if (SyncStart.subarray(0, length).equals(suffix) || SyncEnd.subarray(0, length).equals(suffix)) return length - } - return 0 -} - -export const createTerminalParser: TerminalParserFactory = async (cols, rows) => { - const core: TerminalCore = await GhosttyCore.load() - core.init(cols, rows) - return new GhosttyTerminal(core) -} diff --git a/packages/drive/src/recording/types.ts b/packages/drive/src/recording/types.ts deleted file mode 100644 index 7289357dec5..00000000000 --- a/packages/drive/src/recording/types.ts +++ /dev/null @@ -1,48 +0,0 @@ -export { TextStyle } from "../frame/index.js" - -export interface CapturedSpan { - text: string - width: number - fg: number - bg: number - attributes: number -} - -export interface CapturedLine { - spans: CapturedSpan[] -} - -export interface CapturedFrame { - cols: number - rows: number - cursor: { row: number; col: number; visible: boolean } - lines: CapturedLine[] -} - -export interface SampledFrame { - atMs: number - frame: CapturedFrame -} - -export interface TimelineHeader { - type: "header" - version: 1 - cols: number - rows: number - encoding: "base64" -} - -export interface TimelineOutput { - type: "output" - at_ms: number - data: string -} - -export interface TimelineResize { - type: "resize" - at_ms: number - cols: number - rows: number -} - -export type TimelineRecord = TimelineHeader | TimelineOutput | TimelineResize diff --git a/packages/drive/src/script/errors.ts b/packages/drive/src/script/errors.ts deleted file mode 100644 index 1b9742ad62f..00000000000 --- a/packages/drive/src/script/errors.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { RpcClientError as RpcClientErrors } from "effect/unstable/rpc" - -export const RpcClientError = RpcClientErrors.RpcClientError -export type RpcClientError = RpcClientErrors.RpcClientError - -export { FileSystemError } from "../project.js" - -export { OpenCodeDriverError } from "../driver/error.js" -export { LlmControllerError, LlmModeError } from "../driver/llm-controller.js" -export { - UiCapabilityError, - UiElementAmbiguousError, - UiNodeAmbiguousError, - UiPredicateError, - UiTimeoutError, - UiWaitOptionsError, -} from "../driver/ui.js" -export { SimulationCompatibilityError } from "../simulation/connector.js" -export { SimulationRequestError } from "@opencode-ai/protocol/simulation" diff --git a/packages/drive/src/script/filesystem.ts b/packages/drive/src/script/filesystem.ts deleted file mode 100644 index 87f8a14265c..00000000000 --- a/packages/drive/src/script/filesystem.ts +++ /dev/null @@ -1,97 +0,0 @@ -import { lstat, mkdir, writeFile } from "node:fs/promises" -import { dirname, isAbsolute, relative, resolve, sep } from "node:path" -import * as Effect from "effect/Effect" -import { FileSystemError, type ProjectFileSystem } from "../project.js" - -interface FileSystemOptions { - readonly git?: boolean -} - -export function createScriptFileSystem(directory: string, options: FileSystemOptions = {}): ProjectFileSystem { - const root = resolve(directory) - return { - writeFile: (path, contents) => - Effect.tryPromise({ - try: async () => { - const destination = await resolveFile(root, path, options) - await mkdir(dirname(destination), { recursive: true }) - await writeFile(destination, contents) - }, - catch: (cause) => - new FileSystemError({ - path, - cause, - message: cause instanceof Error ? cause.message : String(cause), - }), - }), - } -} - -export async function writeScriptFiles( - directory: string, - files: Readonly>, - options: FileSystemOptions = {}, -) { - const root = resolve(directory) - const entries = await Promise.all( - Object.entries(files).map(async ([path, contents]) => ({ - contents, - destination: await resolveFile(root, path, options), - })), - ) - const destinations = new Set() - for (const entry of entries) { - const destination = entry.destination.toLowerCase() - if (destinations.has(destination)) throw new Error("project.files paths must resolve to unique files") - destinations.add(destination) - } - for (const destination of destinations) { - let parent = dirname(destination) - while (parent !== dirname(parent)) { - if (destinations.has(parent)) throw new Error("project.files paths must not contain file and directory conflicts") - parent = dirname(parent) - } - } - await Promise.all( - entries.map(async ({ contents, destination }) => { - await mkdir(dirname(destination), { recursive: true }) - await writeFile(destination, contents) - }), - ) -} - -async function resolveFile(root: string, path: string, options: FileSystemOptions) { - if (isAbsolute(path)) throw new Error("fs.writeFile path must be relative") - const destination = resolve(root, path) - const resolved = relative(root, destination) - if (resolved === "") throw new Error("fs.writeFile path must name a file") - if (resolved === ".." || resolved.startsWith(`..${sep}`)) - throw new Error("fs.writeFile path must stay inside the simulated project") - if (options.git && resolved.split(sep)[0]?.toLowerCase() === ".git") - throw new Error("fs.writeFile path must not modify Git metadata") - await rejectSymlinks(root, destination) - const stats = await lstat(destination).catch((error: unknown) => { - if (isMissing(error)) return undefined - throw error - }) - if (stats?.isDirectory()) throw new Error("fs.writeFile path must not be a directory") - return destination -} - -async function rejectSymlinks(root: string, destination: string) { - const parts = relative(root, destination).split(sep) - let current = root - for (const part of parts) { - current = resolve(current, part) - const stats = await lstat(current).catch((error: unknown) => { - if (isMissing(error)) return undefined - throw error - }) - if (stats === undefined) return - if (stats.isSymbolicLink()) throw new Error("fs.writeFile path must not contain symbolic links") - } -} - -function isMissing(error: unknown): error is NodeJS.ErrnoException { - return error instanceof Error && "code" in error && error.code === "ENOENT" -} diff --git a/packages/drive/src/script/index.ts b/packages/drive/src/script/index.ts deleted file mode 100644 index 9dc9d385172..00000000000 --- a/packages/drive/src/script/index.ts +++ /dev/null @@ -1,18 +0,0 @@ -import type { - AutomaticScriptDefinition, - ManualScriptDefinition, - ScriptDefinition, - ScriptDefinitionInput, -} from "./types.js" - -type Defined = Definition & { - readonly kind: "opencode-drive/script" -} - -export function defineScript(script: ManualScriptDefinition): Defined -export function defineScript(script: AutomaticScriptDefinition): Defined -export function defineScript(script: ScriptDefinitionInput): ScriptDefinition { - return { ...script, kind: "opencode-drive/script" } -} - -export type * from "./types.js" diff --git a/packages/drive/src/script/project.ts b/packages/drive/src/script/project.ts deleted file mode 100644 index 3bea0034d63..00000000000 --- a/packages/drive/src/script/project.ts +++ /dev/null @@ -1,72 +0,0 @@ -import { lstat, readdir, rm } from "node:fs/promises" -import { join } from "node:path" -import * as NodeServices from "@effect/platform-node/NodeServices" -import * as Effect from "effect/Effect" -import * as Process from "../instance/process.js" -import { writeScriptFiles } from "./filesystem.js" -import type { Project } from "./types.js" - -export async function initializeScriptProject(root: string, project: Project) { - if (project.git) await assertGitPlaceholder(root) - await writeScriptFiles(root, project.files ?? {}, { git: true }) -} - -export async function commitScriptProject(root: string) { - await assertGitPlaceholder(root) - const metadata = join(root, ".git") - await rm(metadata, { recursive: true, force: true }) - await git(root, ["init", "--quiet", "--initial-branch=main"]) - await git(root, ["add", "--force", "--all"]) - await git(root, [ - "-c", - "user.name=OpenCode Drive", - "-c", - "user.email=drive@opencode.ai", - "commit", - "--quiet", - "--message=Initial commit", - ]) -} - -async function assertGitPlaceholder(root: string) { - if (await hasGitMetadata(root)) throw new Error("project.git cannot replace existing Git metadata") -} - -export async function hasGitMetadata(root: string) { - const metadata = join(root, ".git") - const stats = await lstat(metadata).catch((error: unknown) => { - if (isMissing(error)) return undefined - throw error - }) - if (!stats) return false - return !stats.isDirectory() || (await readdir(metadata)).length > 0 -} - -async function git(cwd: string, args: ReadonlyArray) { - const output = await Effect.runPromise( - Process.run(["git", ...args], { - cwd, - env: { - ...stripGitEnvironment(Bun.env), - GIT_CONFIG_GLOBAL: "/dev/null", - GIT_CONFIG_NOSYSTEM: "1", - GIT_AUTHOR_DATE: "2000-01-01T00:00:00Z", - GIT_COMMITTER_DATE: "2000-01-01T00:00:00Z", - }, - }).pipe(Effect.provide(NodeServices.layer)), - ) - if (output.status === 0) return - throw new Error(`git ${args[0]} failed: ${output.stderr.trim()}`) -} - -export function stripGitEnvironment(env: Readonly>) { - return Object.fromEntries( - Object.entries(env).filter( - (entry): entry is [string, string] => entry[1] !== undefined && !entry[0].startsWith("GIT_"), - ), - ) -} - -function isMissing(error: unknown): error is NodeJS.ErrnoException { - return error instanceof Error && "code" in error && error.code === "ENOENT" -} diff --git a/packages/drive/src/script/tooling.ts b/packages/drive/src/script/tooling.ts deleted file mode 100644 index 170ad6ed772..00000000000 --- a/packages/drive/src/script/tooling.ts +++ /dev/null @@ -1,158 +0,0 @@ -import { mkdir, rm, symlink } from "node:fs/promises" -import { createRequire } from "node:module" -import { dirname, join, resolve } from "node:path" -import { fileURLToPath } from "node:url" - -const packageRoot = resolve(fileURLToPath(new URL("../..", import.meta.url))) -const requireFromDrive = createRequire(join(packageRoot, "package.json")) -const effectRoot = dirname(requireFromDrive.resolve("effect/package.json")) -const compilerRoot = dirname(requireFromDrive.resolve("@typescript/native-preview/package.json")) -const bunTypesRoot = dirname(requireFromDrive.resolve("@types/bun/package.json")) -const requireFromBunTypes = createRequire(join(bunTypesRoot, "package.json")) -const bunRuntimeTypesRoot = dirname(requireFromBunTypes.resolve("bun-types/package.json")) - -type Contract = "program" | "script" - -export async function prepareScriptModule(artifacts: string, script: string) { - const source = await resolveSource(script, "script") - const root = await prepareRuntimeRoot(artifacts) - return compileScript(root, source) -} - -export async function prepareProgram(artifacts: string, script: string) { - const source = await resolveSource(script, "program") - const root = await prepareRuntimeRoot(artifacts) - await typecheck(root, source, "program") - const program = await compileScript(root, source) - const runner = join(root, "program-runner.ts") - await Bun.write( - runner, - [ - 'import * as Effect from "effect/Effect"', - `import program from ${JSON.stringify(program)}`, - 'if (!Effect.isEffect(program)) throw new Error("program must default-export a fully provided Effect")', - "await Effect.runPromise(program)", - "", - ].join("\n"), - ) - return runner -} - -export async function checkScript(artifacts: string, script: string) { - const source = await resolveSource(script, "script") - const root = await prepareRuntimeRoot(artifacts) - await typecheck(root, source, "script") -} - -async function resolveSource(script: string, contract: Contract) { - const source = resolve(script) - if (!(await Bun.file(source).exists())) throw new Error(`${contract} not found: ${source}`) - return source -} - -async function compileScript(root: string, source: string) { - const entry = join(root, "script-entry.ts") - const output = join(root, "compiled") - await Bun.write(entry, `export { default } from ${JSON.stringify(source)}\n`) - const result = await Bun.build({ - entrypoints: [entry], - outdir: output, - target: "bun", - packages: "bundle", - external: ["opencode-drive", "opencode-drive/*", "effect", "effect/*"], - sourcemap: "inline", - }) - if (!result.success) { - const diagnostics = result.logs.map((log) => log.message).join("\n") - throw new Error(diagnostics || `failed to compile script: ${source}`) - } - const file = result.outputs.find((item) => item.kind === "entry-point")?.path - if (!file) throw new Error(`script compilation produced no entry point: ${source}`) - return file -} - -async function typecheck(root: string, source: string, contract: Contract) { - const contractFile = join(root, `${contract}-contract.ts`) - const tsconfig = join(root, `${contract}-tsconfig.json`) - await Bun.write( - contractFile, - contract === "program" - ? [ - 'import type * as Effect from "effect/Effect"', - `import program from ${JSON.stringify(source)}`, - "const checked: Effect.Effect = program", - "void checked", - "", - ].join("\n") - : [ - 'import type { ScriptDefinition } from "opencode-drive/script"', - `import script from ${JSON.stringify(source)}`, - "const checked: ScriptDefinition = script", - "void checked", - "", - ].join("\n"), - ) - await Bun.write( - tsconfig, - `${JSON.stringify( - { - compilerOptions: { - strict: true, - noEmit: true, - allowJs: true, - checkJs: true, - lib: ["ESNext"], - target: "ESNext", - module: "Preserve", - moduleResolution: "Bundler", - allowImportingTsExtensions: true, - skipLibCheck: true, - types: ["bun"], - paths: { - "opencode-drive": [join(packageRoot, "src", "index.ts")], - "opencode-drive/*": [join(packageRoot, "src", "*")], - effect: [join(effectRoot, "dist", "index.d.ts")], - "effect/*": [join(effectRoot, "dist", "*.d.ts")], - }, - }, - files: [contractFile], - }, - undefined, - 2, - )}\n`, - ) - const capture = contract === "script" - const child = Bun.spawn([process.execPath, join(compilerRoot, "bin", "tsgo.js"), "-p", tsconfig], { - cwd: root, - stdin: "ignore", - stdout: capture ? "pipe" : "inherit", - stderr: capture ? "pipe" : "inherit", - }) - const [status, stdout, stderr] = await Promise.all([ - child.exited, - capture ? new Response(child.stdout).text() : "", - capture ? new Response(child.stderr).text() : "", - ]) - if (status === 0) return - const diagnostics = [stdout, stderr] - .map((value) => value.trim()) - .filter(Boolean) - .join("\n") - throw new Error(diagnostics || `${contract} type check failed with status ${status}`) -} - -async function prepareRuntimeRoot(artifacts: string) { - const root = join(resolve(artifacts), "script-runtime") - const modules = join(root, "node_modules") - await rm(root, { recursive: true, force: true }) - await mkdir(join(modules, "@types"), { recursive: true }) - await Promise.all([ - symlink(packageRoot, join(modules, "opencode-drive"), linkType), - symlink(effectRoot, join(modules, "effect"), linkType), - symlink(bunTypesRoot, join(modules, "@types", "bun"), linkType), - symlink(bunRuntimeTypesRoot, join(modules, "bun-types"), linkType), - ]) - return root -} - -const linkType = process.platform === "win32" ? "junction" : "dir" diff --git a/packages/drive/src/script/types.ts b/packages/drive/src/script/types.ts deleted file mode 100644 index 694f56a71a4..00000000000 --- a/packages/drive/src/script/types.ts +++ /dev/null @@ -1,83 +0,0 @@ -import type * as Effect from "effect/Effect" -import type * as Tool from "../tool/index.js" -import type * as OpenCodeUi from "../driver/ui.js" -import type * as OpenCodeTui from "../driver/client.js" -import type { Llm } from "../driver/llm.js" -import type * as OpenCodeServer from "../driver/server.js" -import type * as OpenCodeSdk from "../driver/opencode.js" -import type { OpenCodeConfig, OpenCodeTuiConfig, Project, ProjectFileSystem, Setup } from "../project.js" -export type * from "../project.js" -export type ScriptServerLaunchError = Effect.Error> -export type ScriptServerKillError = Effect.Error> - -export interface ScriptServer { - /** Launches the one shared OpenCode server for this script. */ - launch(): Effect.Effect - /** Stops the shared server. It may be launched again afterward. */ - kill(): Effect.Effect -} - -export interface ScriptContext { - /** Generated SDK client connected to this script's private OpenCode service. */ - readonly opencode: OpenCodeSdk.OpenCode - readonly fs: ProjectFileSystem - readonly tui: OpenCodeTui.Tui - /** Convenience alias for the primary TUI's UI. */ - readonly ui: OpenCodeUi.Ui - readonly tuis: OpenCodeTui.Tuis - readonly server: ScriptServer - readonly llm: Llm - /** Runtime controls for tools declared by name on the script. */ - readonly tools: Tool.Controls - readonly artifacts: string -} - -export interface ManualScriptContext extends Omit { - readonly tui: null - readonly ui: null -} - -export type ScriptRun = (context: ScriptContext) => Effect.Effect -export type ManualScriptRun = (context: ManualScriptContext) => Effect.Effect - -export interface AutomaticScriptDefinition { - /** Declares the isolated project OpenCode runs against. */ - readonly project?: Project - /** OpenCode configuration merged over project fixture configuration. */ - readonly config?: OpenCodeConfig - /** OpenCode TUI configuration merged over project fixture configuration. */ - readonly tuiConfig?: OpenCodeTuiConfig - /** Runs once before OpenCode starts. */ - readonly setup?: Setup - /** Declares runtime-controlled tool names or fixed replacements before OpenCode starts. */ - readonly tools?: Tool.Configuration - /** Configures the automatically launched primary TUI. */ - readonly tui?: OpenCodeTui.TuiOptions - /** Runs after the UI and LLM connections are ready, and again after restart. */ - readonly run: ScriptRun -} - -export interface ManualScriptDefinition { - /** The server and every TUI are launched explicitly by the script. */ - readonly launch: "manual" - /** Declares the isolated project OpenCode runs against. */ - readonly project?: Project - /** OpenCode configuration merged over project fixture configuration. */ - readonly config?: OpenCodeConfig - /** OpenCode TUI configuration merged over project fixture configuration. */ - readonly tuiConfig?: OpenCodeTuiConfig - /** Runs once before OpenCode starts. */ - readonly setup?: Setup - /** Declares runtime-controlled tool names or fixed replacements before OpenCode starts. */ - readonly tools?: Tool.Configuration - /** Defaults for TUIs launched by the script. */ - readonly tui?: OpenCodeTui.TuiOptions - /** Runs after the shared service and LLM connection are ready. */ - readonly run: ManualScriptRun -} - -export type ScriptDefinitionInput = AutomaticScriptDefinition | ManualScriptDefinition - -export type ScriptDefinition = ScriptDefinitionInput & { - readonly kind: "opencode-drive/script" -} diff --git a/packages/drive/src/simulation/connector.ts b/packages/drive/src/simulation/connector.ts deleted file mode 100644 index 040fc5d66ae..00000000000 --- a/packages/drive/src/simulation/connector.ts +++ /dev/null @@ -1,349 +0,0 @@ -import * as Context from "effect/Context" -import * as Cause from "effect/Cause" -import * as Deferred from "effect/Deferred" -import * as Effect from "effect/Effect" -import * as Layer from "effect/Layer" -import * as Option from "effect/Option" -import * as Queue from "effect/Queue" -import * as Schema from "effect/Schema" -import * as Stream from "effect/Stream" -import { RpcClient, RpcClientError } from "effect/unstable/rpc" -import { - Backend as BackendProtocol, - BackendRpcs, - Frontend as FrontendProtocol, - Handshake, - SimulationRequestError, - UiRpcs, -} from "@opencode-ai/protocol/simulation" -import packageJson from "../../package.json" with { type: "json" } -import * as OpenCodeRpcProtocol from "./opencode-protocol.js" - -export class SimulationConnectionError extends Schema.TaggedErrorClass()( - "SimulationConnectionError", - { - endpoint: Schema.String, - operation: Schema.String, - message: Schema.String, - }, -) {} - -export class SimulationCompatibilityError extends Schema.TaggedErrorClass()( - "SimulationCompatibilityError", - { - endpoint: Schema.String, - role: Handshake.EndpointRole, - message: Schema.String, - }, -) {} - -export class SimulationEventStreamError extends Schema.TaggedErrorClass()( - "SimulationEventStreamError", - { - endpoint: Schema.String, - message: Schema.String, - }, -) {} - -export const EndpointCompatibility = Schema.TaggedUnion({ - Negotiated: { - endpoint: Schema.String, - role: Handshake.EndpointRole, - protocolVersion: Handshake.ProtocolVersion, - server: Handshake.Identity, - capabilities: Schema.Array(Handshake.Capability), - }, - Legacy: { - endpoint: Schema.String, - role: Handshake.EndpointRole, - profile: Schema.Literal("opencode-simulation-jsonrpc-v0"), - reason: Schema.String, - }, -}) -export type EndpointCompatibility = typeof EndpointCompatibility.Type - -export function supportsCapability(compatibility: EndpointCompatibility, capability: Handshake.Capability) { - return compatibility._tag === "Negotiated" && compatibility.capabilities.includes(capability) -} - -export type CompatibilityPolicy = "required" | "preferred" - -export interface Options { - readonly connectTimeout?: number - readonly requestTimeout?: number - readonly attach?: boolean - readonly compatibility?: CompatibilityPolicy -} - -export type UiClient = RpcClient.FromGroup -export type BackendClient = RpcClient.FromGroup - -export interface UiConnection { - readonly endpoint: string - readonly rpc: UiClient - readonly compatibility: EndpointCompatibility -} - -export type ToolEvent = - | { readonly type: "invocation"; readonly invocation: BackendProtocol.ToolInvocation } - | { readonly type: "cancellation"; readonly cancellation: BackendProtocol.ToolCancellation } - | { readonly type: "barrier"; readonly completed: Deferred.Deferred } - -export interface BackendConnection { - readonly endpoint: string - readonly rpc: BackendClient - readonly compatibility: EndpointCompatibility - readonly requests: Stream.Stream - readonly toolEvents: Stream.Stream - readonly flushToolEvents: () => Effect.Effect - readonly closed: Effect.Effect - readonly attach: () => Effect.Effect< - { readonly attached: true }, - SimulationConnectionError | RpcClientError.RpcClientError | SimulationRequestError - > - readonly attachTools: ( - tools: ReadonlyArray, - ) => Effect.Effect< - { readonly attached: true }, - SimulationCompatibilityError | SimulationConnectionError | RpcClientError.RpcClientError | SimulationRequestError - > - readonly updateTool: ( - params: BackendProtocol.ToolUpdateParams, - ) => Effect.Effect< - { readonly ok: true }, - SimulationConnectionError | RpcClientError.RpcClientError | SimulationRequestError - > - readonly finishTool: ( - params: BackendProtocol.ToolFinishParams, - ) => Effect.Effect< - { readonly ok: true }, - SimulationConnectionError | RpcClientError.RpcClientError | SimulationRequestError - > - readonly failTool: ( - params: BackendProtocol.ToolFailParams, - ) => Effect.Effect< - { readonly ok: true }, - SimulationConnectionError | RpcClientError.RpcClientError | SimulationRequestError - > -} - -const toolCapabilities = [ - "tool.attach", - "tool.update", - "tool.finish", - "tool.fail", - "tool.invocation", - "tool.cancel", -] as const satisfies ReadonlyArray -const toolCapabilitySet: ReadonlySet = new Set(toolCapabilities) - -export const ui = Effect.fn("SimulationConnector.ui")(function* (endpoint: string, options?: Options) { - const protocol = yield* OpenCodeRpcProtocol.make(endpoint, { - connectTimeout: options?.connectTimeout, - firstWireId: 0, - }) - const rpc = yield* RpcClient.make(UiRpcs).pipe(Effect.provideService(RpcClient.Protocol, protocol)) - const required = FrontendProtocol.Capabilities.filter( - (capability) => capability !== "ui.snapshot" && capability !== "ui.click.semantic", - ) - const compatibility = yield* negotiate( - endpoint, - "ui", - required, - rpc["simulation.handshake"]({ - client: { name: "opencode-drive", version: packageJson.version }, - expectedRole: "ui", - offeredVersions: [1], - requiredCapabilities: required, - optionalCapabilities: ["ui.snapshot", "ui.click.semantic"], - }), - options?.compatibility, - ) - return { endpoint, rpc, compatibility } satisfies UiConnection -}) - -export const backend = Effect.fn("SimulationConnector.backend")(function* (endpoint: string, options?: Options) { - const requests = yield* Queue.unbounded() - const toolEvents = yield* Queue.unbounded() - const closed = yield* Deferred.make() - const close = Effect.all( - [Deferred.succeed(closed, undefined), Queue.shutdown(requests), Queue.shutdown(toolEvents)], - { discard: true }, - ) - yield* Effect.addFinalizer(() => close) - const protocol = yield* OpenCodeRpcProtocol.make(endpoint, { - connectTimeout: options?.connectTimeout, - firstWireId: 0, - onClose: () => close, - onNotification: ({ method, params }) => { - switch (method) { - case "llm.request": - return Effect.matchEffect(Schema.decodeUnknownEffect(BackendProtocol.ProviderInvocation)(params), { - onFailure: (error) => Queue.fail(requests, error).pipe(Effect.asVoid), - onSuccess: (request) => Queue.offer(requests, request).pipe(Effect.asVoid), - }) - case "tool.invocation": - return Effect.matchEffect(Schema.decodeUnknownEffect(BackendProtocol.ToolInvocation)(params), { - onFailure: (error) => Queue.fail(toolEvents, error).pipe(Effect.asVoid), - onSuccess: (invocation) => Queue.offer(toolEvents, { type: "invocation", invocation }).pipe(Effect.asVoid), - }) - case "tool.cancel": - return Effect.matchEffect(Schema.decodeUnknownEffect(BackendProtocol.ToolCancellation)(params), { - onFailure: (error) => Queue.fail(toolEvents, error).pipe(Effect.asVoid), - onSuccess: (cancellation) => - Queue.offer(toolEvents, { type: "cancellation", cancellation }).pipe(Effect.asVoid), - }) - default: - return Effect.void - } - }, - }) - const rpc = yield* RpcClient.make(BackendRpcs).pipe(Effect.provideService(RpcClient.Protocol, protocol)) - const required = BackendProtocol.Capabilities.filter( - (capability) => - capability !== "llm.pending" && capability !== "llm.tool-input-delta" && !toolCapabilitySet.has(capability), - ) - const compatibility = yield* negotiate( - endpoint, - "backend", - required, - rpc["simulation.handshake"]({ - client: { name: "opencode-drive", version: packageJson.version }, - expectedRole: "backend", - offeredVersions: [1], - requiredCapabilities: required, - optionalCapabilities: ["llm.pending", "llm.tool-input-delta", ...toolCapabilities], - }), - options?.compatibility, - ) - const attach = Effect.fn("SimulationConnector.attach")(() => - rpc["llm.attach"]().pipe( - Effect.timeoutOrElse({ - duration: options?.requestTimeout ?? 30_000, - orElse: () => - Effect.fail( - new SimulationConnectionError({ - endpoint, - operation: "llm.attach", - message: `llm.attach timed out after ${options?.requestTimeout ?? 30_000}ms`, - }), - ), - }), - ), - ) - if (options?.attach !== false) yield* attach() - const withTimeout = (operation: string, effect: Effect.Effect) => - effect.pipe( - Effect.timeoutOrElse({ - duration: options?.requestTimeout ?? 30_000, - orElse: () => - Effect.fail( - new SimulationConnectionError({ - endpoint, - operation, - message: `${operation} timed out after ${options?.requestTimeout ?? 30_000}ms`, - }), - ), - }), - ) - const attachTools: BackendConnection["attachTools"] = (tools) => { - const missing = toolCapabilities.filter((capability) => !supportsCapability(compatibility, capability)) - if (missing.length > 0) - return Effect.fail( - new SimulationCompatibilityError({ - endpoint, - role: "backend", - message: `Simulation endpoint is missing required capabilities: ${missing.join(", ")}`, - }), - ) - return withTimeout("tool.attach", rpc["tool.attach"]({ tools })) - } - const updateTool: BackendConnection["updateTool"] = (params) => withTimeout("tool.update", rpc["tool.update"](params)) - const finishTool: BackendConnection["finishTool"] = (params) => withTimeout("tool.finish", rpc["tool.finish"](params)) - const failTool: BackendConnection["failTool"] = (params) => withTimeout("tool.fail", rpc["tool.fail"](params)) - const flushToolEvents = Effect.fn("SimulationConnector.flushToolEvents")(function* () { - const completed = yield* Deferred.make() - const offered = yield* Queue.offer(toolEvents, { type: "barrier", completed }) - if (!offered) - return yield* Effect.fail( - new SimulationEventStreamError({ - endpoint, - message: "Dynamic tool event stream is unavailable", - }), - ) - yield* Deferred.await(completed) - return undefined - }) - return { - endpoint, - rpc, - compatibility, - requests: Stream.fromQueue(requests), - toolEvents: Stream.fromQueue(toolEvents), - flushToolEvents, - closed: Deferred.await(closed), - attach, - attachTools, - updateTool, - finishTool, - failTool, - } satisfies BackendConnection -}) - -export interface Interface { - readonly ui: typeof ui - readonly backend: typeof backend -} - -export class Service extends Context.Service()("opencode-drive/SimulationConnector") {} - -export const layer = Layer.succeed(Service, Service.of({ ui, backend })) - -const negotiate = Effect.fn("SimulationConnector.negotiate")(function* ( - endpoint: string, - role: Handshake.EndpointRole, - required: ReadonlyArray, - handshake: Effect.Effect, - policy: CompatibilityPolicy = "preferred", -) { - const legacy = (reason: string): EndpointCompatibility => - EndpointCompatibility.cases.Legacy.make({ - endpoint, - role, - profile: "opencode-simulation-jsonrpc-v0", - reason, - }) - const result = yield* Effect.exit(handshake) - if (result._tag === "Success") { - const missing = required.filter((capability) => !result.value.capabilities.includes(capability)) - if (result.value.role !== role || missing.length > 0) - return yield* Effect.fail( - new SimulationCompatibilityError({ - endpoint, - role, - message: - result.value.role !== role - ? `Expected ${role} simulation endpoint, received ${result.value.role}` - : `Simulation endpoint is missing required capabilities: ${missing.join(", ")}`, - }), - ) - return EndpointCompatibility.cases.Negotiated.make({ - endpoint, - role: result.value.role, - protocolVersion: result.value.protocolVersion, - server: result.value.server, - capabilities: result.value.capabilities, - }) - } - const cause = result.cause - const message = Cause.pretty(cause) - if (policy === "preferred" && isHandshakeUnavailable(cause)) return legacy(message) - return yield* Effect.fail(new SimulationCompatibilityError({ endpoint, role, message })) -}) - -function isHandshakeUnavailable(cause: Cause.Cause) { - const failure = Cause.findErrorOption(cause) - return Option.isSome(failure) && failure.value instanceof SimulationRequestError && failure.value.code === -32601 -} - -export * as SimulationConnector from "./connector.js" diff --git a/packages/drive/src/simulation/opencode-protocol.ts b/packages/drive/src/simulation/opencode-protocol.ts deleted file mode 100644 index 4d07fb91651..00000000000 --- a/packages/drive/src/simulation/opencode-protocol.ts +++ /dev/null @@ -1,336 +0,0 @@ -import * as Effect from "effect/Effect" -import * as Option from "effect/Option" -import * as Queue from "effect/Queue" -import * as Schema from "effect/Schema" -import { RpcClient, RpcClientError, type RpcMessage } from "effect/unstable/rpc" -import { JsonRpc, SimulationRequestError } from "@opencode-ai/protocol/simulation" - -interface PendingRequest { - readonly clientId: number - readonly method: string - readonly requestId: string | number -} - -type TransportEvent = - | { readonly _tag: "Message"; readonly data: string } - | { readonly _tag: "Close" } - | { readonly _tag: "Error"; readonly cause: unknown } - -export interface Notification { - readonly method: string - readonly params: unknown -} - -export interface Options { - readonly connectTimeout?: number - readonly firstWireId?: number - readonly onClose?: () => Effect.Effect - readonly onNotification?: (notification: Notification) => Effect.Effect -} - -const decodeResponse = Schema.decodeUnknownOption(JsonRpc.Response) -const encodeRequestError = Schema.encodeSync(Schema.toCodecJson(SimulationRequestError)) - -export const make = Effect.fn("OpenCodeRpcProtocol.make")(function* (endpoint: string, options?: Options) { - const connectTimeout = options?.connectTimeout ?? 30_000 - let closing = false - const socket = yield* Effect.acquireRelease( - open(endpoint).pipe( - Effect.timeoutOrElse({ - duration: connectTimeout, - orElse: () => - Effect.fail( - protocolError( - `cannot connect to ${endpoint}: timed out after ${connectTimeout}ms`, - new Error("WebSocket connection timed out"), - ), - ), - }), - ), - (socket) => - Effect.sync(() => { - closing = true - socket.terminate() - }), - ) - - return yield* RpcClient.Protocol.make((write, clientIds) => - Effect.gen(function* () { - const events = yield* Queue.unbounded() - const pending = new Map() - const wireIds = new Map>() - let nextWireId = options?.firstWireId ?? 1 - let currentError: RpcClientError.RpcClientError | undefined - - const removePending = (wireId: number) => { - const request = pending.get(wireId) - if (request === undefined) return undefined - pending.delete(wireId) - const clientWireIds = wireIds.get(request.clientId) - clientWireIds?.delete(request.requestId) - if (clientWireIds?.size === 0) wireIds.delete(request.clientId) - return request - } - - const failAll = (message: string, cause: unknown) => - Effect.gen(function* () { - if (closing || currentError !== undefined) return - const error = protocolError(message, cause) - currentError = error - pending.clear() - wireIds.clear() - yield* Effect.forEach(clientIds, (clientId) => - write(clientId, { - _tag: "ClientProtocolError", - error, - }), - ) - if (socket.readyState === WebSocket.OPEN) socket.terminate() - }) - - const handleMessage = (data: string): Effect.Effect => { - let value: unknown - try { - value = JSON.parse(data) - } catch (cause) { - return failAll("received invalid JSON", cause) - } - - if (isRecord(value) && typeof value.method === "string") { - if (value.jsonrpc !== "2.0" || "id" in value) - return failAll("received an invalid JSON-RPC notification", value) - return ( - options?.onNotification?.({ - method: value.method, - params: "params" in value ? value.params : undefined, - }) ?? Effect.void - ) - } - - if (!isRecord(value)) return failAll("received an invalid JSON-RPC response", value) - const hasResult = Object.hasOwn(value, "result") - const hasError = Object.hasOwn(value, "error") - if (hasResult === hasError) return failAll("JSON-RPC response must contain result or error", value) - - const decoded = decodeResponse(value) - if (Option.isNone(decoded)) return failAll("received an invalid JSON-RPC response", value) - const response = decoded.value - if (typeof response.id !== "number") return failAll("received an invalid JSON-RPC response ID", response.id) - const request = removePending(response.id) - if (request === undefined) return Effect.void - - if (response.error !== undefined) { - const error = new SimulationRequestError({ - method: request.method, - code: response.error.code, - message: response.error.message, - ...(response.error.data === undefined ? {} : { data: response.error.data }), - }) - return write(request.clientId, { - _tag: "Exit", - requestId: request.requestId, - exit: { - _tag: "Failure", - cause: [{ _tag: "Fail", error: encodeRequestError(error) }], - }, - }) - } - - return write(request.clientId, { - _tag: "Exit", - requestId: request.requestId, - exit: { _tag: "Success", value: response.result }, - }) - } - - const handleEvent = (event: TransportEvent) => { - switch (event._tag) { - case "Message": - return handleMessage(event.data) - case "Close": - return Effect.andThen( - options?.onClose?.() ?? Effect.void, - failAll("connection closed", new Error("connection closed")), - ) - case "Error": - return Effect.andThen(options?.onClose?.() ?? Effect.void, failAll("connection error", event.cause)) - } - return Effect.void - } - - yield* Queue.take(events).pipe(Effect.flatMap(handleEvent), Effect.forever, Effect.forkScoped) - - const onMessage = (event: MessageEvent) => - Queue.offerUnsafe(events, { - _tag: "Message", - data: String(event.data), - }) - const onClose = () => Queue.offerUnsafe(events, { _tag: "Close" }) - const onError = (cause: Event) => Queue.offerUnsafe(events, { _tag: "Error", cause }) - socket.addEventListener("message", onMessage) - socket.addEventListener("close", onClose) - socket.addEventListener("error", onError) - yield* Effect.addFinalizer(() => - Effect.sync(() => { - socket.removeEventListener("message", onMessage) - socket.removeEventListener("close", onClose) - socket.removeEventListener("error", onError) - }).pipe(Effect.andThen(Queue.shutdown(events))), - ) - - const send = (clientId: number, message: RpcMessage.FromClientEncoded) => - Effect.suspend(() => { - if (currentError !== undefined) return Effect.fail(currentError) - if (message._tag === "Interrupt") { - const clientWireIds = wireIds.get(clientId) - const wireId = clientWireIds?.get(message.requestId) - if (wireId !== undefined) removePending(wireId) - return Effect.void - } - if (message._tag !== "Request") return Effect.void - if (socket.readyState !== WebSocket.OPEN) - return Effect.fail(protocolError("connection is not open", new Error("connection is not open"))) - - let clientWireIds = wireIds.get(clientId) - if (clientWireIds === undefined) { - clientWireIds = new Map() - wireIds.set(clientId, clientWireIds) - } - if (clientWireIds.has(message.id)) - return Effect.fail(protocolError("duplicate RPC request ID", new Error(String(message.id)))) - - const wireId = nextWireId++ - const payload = message.tag === "ui.press" ? encodePressPayload(message.payload) : message.payload - pending.set(wireId, { - clientId, - method: message.tag, - requestId: message.id, - }) - clientWireIds.set(message.id, wireId) - return Effect.try({ - try: () => { - socket.send( - JSON.stringify({ - jsonrpc: "2.0", - id: wireId, - method: message.tag, - ...(payload === undefined || payload === null ? {} : { params: payload }), - }), - ) - }, - catch: (cause) => { - removePending(wireId) - return protocolError("failed to send request", cause) - }, - }) - }) - - return { - send, - supportsAck: false, - supportsTransferables: false, - } - }), - ) -}) - -const arrows = { - up: { final: "A", kitty: 57_352 }, - down: { final: "B", kitty: 57_353 }, - right: { final: "C", kitty: 57_351 }, - left: { final: "D", kitty: 57_350 }, -} as const - -function encodePressPayload(payload: unknown) { - if (typeof payload !== "object" || payload === null) return payload - const key = Reflect.get(payload, "key") - if (typeof key !== "string") return payload - const modifiers = Reflect.get(payload, "modifiers") - const modifier = modifierMask(modifiers) - const named = key.toLowerCase() - const arrowName = named.startsWith("arrow_") ? named.slice(6) : named - const arrow = - arrowName === "up" - ? arrows.up - : arrowName === "down" - ? arrows.down - : arrowName === "right" - ? arrows.right - : arrowName === "left" - ? arrows.left - : undefined - if (arrow !== undefined) { - if (modifier & 24) return { key: kittySequence(arrow.kitty, modifier) } - return { - key: modifier === 0 ? `\u001b[${arrow.final}` : `\u001b[1;${modifier + 1}${arrow.final}`, - } - } - if (named === "tab" && modifier !== 0) return { key: kittySequence(9, modifier) } - return payload -} - -function modifierMask(value: unknown) { - if (typeof value !== "object" || value === null) return 0 - return ( - (Reflect.get(value, "shift") === true ? 1 : 0) | - (Reflect.get(value, "meta") === true ? 2 : 0) | - (Reflect.get(value, "ctrl") === true ? 4 : 0) | - (Reflect.get(value, "super") === true ? 8 : 0) | - (Reflect.get(value, "hyper") === true ? 16 : 0) - ) -} - -function kittySequence(codepoint: number, modifier: number) { - return `\u001b[${codepoint};${modifier + 1}u` -} - -function open(endpoint: string) { - return Effect.callback((resume) => { - let socket: WebSocket - try { - socket = new WebSocket(endpoint) - } catch (cause) { - resume(Effect.fail(protocolError(`cannot connect to ${endpoint}`, cause))) - return Effect.void - } - let settled = false - const complete = (effect: Effect.Effect) => { - if (settled) return - settled = true - cleanup() - resume(effect) - } - const onOpen = () => complete(Effect.succeed(socket)) - const onError = (cause: Event) => { - complete(Effect.fail(protocolError(`cannot connect to ${endpoint}`, cause))) - socket.terminate() - } - const onClose = () => { - complete( - Effect.fail(protocolError(`cannot connect to ${endpoint}`, new Error("connection closed before opening"))), - ) - } - const cleanup = () => { - socket.removeEventListener("open", onOpen) - socket.removeEventListener("error", onError) - socket.removeEventListener("close", onClose) - } - socket.addEventListener("open", onOpen) - socket.addEventListener("error", onError) - socket.addEventListener("close", onClose) - return Effect.sync(() => { - cleanup() - socket.terminate() - }) - }) -} - -function protocolError(message: string, cause: unknown) { - return new RpcClientError.RpcClientError({ - reason: new RpcClientError.RpcClientDefect({ message, cause }), - }) -} - -function isRecord(value: unknown): value is Record { - return typeof value === "object" && value !== null && !Array.isArray(value) -} diff --git a/packages/drive/src/tool/controller.ts b/packages/drive/src/tool/controller.ts deleted file mode 100644 index 918fb10ac5c..00000000000 --- a/packages/drive/src/tool/controller.ts +++ /dev/null @@ -1,676 +0,0 @@ -import { fileURLToPath } from "node:url" -import * as Cause from "effect/Cause" -import * as Deferred from "effect/Deferred" -import * as Effect from "effect/Effect" -import * as Exit from "effect/Exit" -import * as Option from "effect/Option" -import * as Schema from "effect/Schema" -import * as Semaphore from "effect/Semaphore" -import type { JsonValue, OpenCodeConfig, Setup as ProjectSetup } from "../project.js" -import { - Failure, - ControlError, - ShellInput, - ShellResult, - WebFetchInput, - WebFetchResult, - WebSearchInput, - WebSearchResult, - WriteInput, - WriteResult, - type Configuration, - type ControlledCall, - type ControlledCalls, - type ControlledCallsFor, - type StaticControls, - type Handler, - type Name, - type Registration, - type Registry, - type ShellHandler, - type WebFetchHandler, - type WebSearchHandler, - type WriteHandler, -} from "./types.js" - -type Result = ShellResult | WebFetchResult | WebSearchResult | WriteResult -type Event = - | { readonly type: "progress"; readonly result: Result } - | { readonly type: "success"; readonly result: Result } - | { readonly type: "failure"; readonly message: string } -type BackgroundCompletion = { - readonly shellID: string - readonly command: string - readonly state: "completed" | "error" | "cancelled" - readonly output: string -} -type BackgroundJob = { - readonly input: string - readonly completion: Promise - readonly cancel: () => void -} -type Definition = { - readonly schema: typeof ShellInput | typeof WebFetchInput | typeof WebSearchInput | typeof WriteInput - readonly invoke: ( - input: unknown, - index: number, - id: string, - progress: (result: Result) => Effect.Effect, - ) => Effect.Effect -} - -const MAX_EVENT_BYTES = 1024 * 1024 -const ExecutionRequest = Schema.Struct({ - input: Schema.Unknown, - context: Schema.Struct({ - callID: Schema.String, - }), -}) -const encoder = new TextEncoder() - -function controlError( - operation: ControlError["operation"], - reason: ControlError["reason"], - name: Name, - callID?: string, -) { - const message = - reason === "not-controlled" - ? `tool is not configured for runtime control: ${name}` - : reason === "controller-closed" - ? callID === undefined - ? `tool controller is closed: ${name}` - : `${name} tool call ${callID} was interrupted because the controller closed` - : reason === "already-claimed" - ? `${name} tool call already claimed: ${callID}` - : reason === "already-settled" - ? `${name} tool call ${callID} is settled` - : `${name} tool call ${callID} is interrupted` - return new ControlError({ operation, reason, name, callID, message }) -} - -export interface Controller { - readonly enabled: boolean - readonly controls: StaticControls - readonly configure: (config: OpenCodeConfig) => void - readonly names: ReadonlySet -} - -export function composeSetup(controller: Controller, setup: ProjectSetup | undefined): ProjectSetup | undefined { - if (!controller.enabled && setup === undefined) return undefined - return (context) => - Effect.suspend(() => { - const configured: unknown = setup === undefined ? Effect.void : setup(context) - if (!isEffect(configured)) return Effect.fail(new Error("setup must return an Effect")) - return configured.pipe(Effect.asVoid, Effect.andThen(Effect.sync(() => controller.configure(context.config)))) - }) -} - -function isEffect(value: unknown): value is Effect.Effect { - return Effect.isEffect(value) -} - -export const make = Effect.fn("ToolController.make")(function* (configuration?: Configuration) { - const definitions = new Map() - const closeControls: Array> = [] - let closed = false - const controlledCalls: { - [Tool in Name]?: ControlledCallsFor - } = {} - const add = (name: string, definition: Definition) => { - if (definitions.has(name)) throw new Error(`tool handler already registered: ${name}`) - definitions.set(name, definition) - } - function handle(name: "shell", handler: ShellHandler): void - function handle(name: "webfetch", handler: WebFetchHandler): void - function handle(name: "websearch", handler: WebSearchHandler): void - function handle(name: "write", handler: WriteHandler): void - function handle(...registration: Registration) { - switch (registration[0]) { - case "shell": { - const handler = registration[1] - add("shell", { - schema: ShellInput, - invoke: (raw, index, id, progress) => - Effect.gen(function* () { - const input = yield* Schema.decodeUnknownEffect(ShellInput)(raw) - const result = yield* handler({ - id, - input, - index, - progress: (value) => progress(typeof value === "string" ? { output: value } : value), - }) - return yield* Schema.decodeUnknownEffect(ShellResult)(result) - }), - }) - return - } - case "webfetch": { - const handler = registration[1] - add("webfetch", { - schema: WebFetchInput, - invoke: (raw, index, id, progress) => - Effect.gen(function* () { - const input = yield* Schema.decodeUnknownEffect(WebFetchInput)(raw) - const result = yield* handler({ - id, - input, - index, - progress: (value) => progress(typeof value === "string" ? { output: value } : value), - }) - return yield* Schema.decodeUnknownEffect(WebFetchResult)(result) - }), - }) - return - } - case "websearch": { - const handler = registration[1] - add("websearch", { - schema: WebSearchInput, - invoke: (raw, index, id, progress) => - Effect.gen(function* () { - const input = yield* Schema.decodeUnknownEffect(WebSearchInput)(raw) - const result = yield* handler({ - id, - input, - index, - progress: (value) => progress(typeof value === "string" ? { output: value } : value), - }) - return yield* Schema.decodeUnknownEffect(WebSearchResult)(result) - }), - }) - return - } - case "write": { - const handler = registration[1] - add("write", { - schema: WriteInput, - invoke: (raw, index, id, progress) => - Effect.gen(function* () { - const input = yield* Schema.decodeUnknownEffect(WriteInput)(raw) - const result = yield* handler({ - id, - input, - index, - progress: (value) => progress(typeof value === "string" ? { output: value } : value), - }) - return yield* Schema.decodeUnknownEffect(WriteResult)(result) - }), - }) - } - } - } - const registry: Registry = { handle } - if (typeof configuration === "function") configuration(registry) - if (Array.isArray(configuration)) { - for (const name of configuration) { - switch (name) { - case "shell": { - const controlled = makeControlledHandler("shell") - handle("shell", controlled.handler) - controlledCalls.shell = controlled.calls - closeControls.push(controlled.close) - break - } - case "webfetch": { - const controlled = makeControlledHandler("webfetch") - handle("webfetch", controlled.handler) - controlledCalls.webfetch = controlled.calls - closeControls.push(controlled.close) - break - } - case "websearch": { - const controlled = makeControlledHandler("websearch") - handle("websearch", controlled.handler) - controlledCalls.websearch = controlled.calls - closeControls.push(controlled.close) - break - } - case "write": { - const controlled = makeControlledHandler("write") - handle("write", controlled.handler) - controlledCalls.write = controlled.calls - closeControls.push(controlled.close) - break - } - default: - throw new Error(`unsupported controlled tool: ${String(name)}`) - } - } - } - function control(name: Tool): Effect.Effect, ControlError> { - if (closed) return Effect.fail(controlError("control", "controller-closed", name)) - const calls = controlledCalls[name] - return calls === undefined ? Effect.fail(controlError("control", "not-controlled", name)) : Effect.succeed(calls) - } - const controls: StaticControls = { control } - if (definitions.size === 0) return { enabled: false, controls, configure() {}, names: new Set() } satisfies Controller - - const token = crypto.randomUUID() - const indexes = new Map() - const active = new Map>() - const background = new Map() - let closing = false - const server = yield* Effect.acquireRelease( - Effect.sync(() => - Bun.serve({ - hostname: "127.0.0.1", - port: 0, - idleTimeout: 255, - fetch(request) { - if (request.headers.get("authorization") !== `Bearer ${token}`) - return new Response("Unauthorized", { status: 401 }) - if (closing && request.method === "POST") return new Response("Tool controller is stopping", { status: 503 }) - const pathname = new URL(request.url).pathname - const shellID = pathname.match(/^\/background\/([^/]+)$/)?.[1] - if (request.method === "GET" && shellID !== undefined) { - const job = background.get(shellID) - if (job === undefined) return new Response("Background shell not found", { status: 404 }) - server.timeout(request, 0) - return job.completion.then((completion) => Response.json(completion)) - } - if (request.method === "DELETE" && shellID !== undefined) { - background.delete(shellID) - return new Response(null, { status: 204 }) - } - const name = pathname.match(/^\/execute\/([^/]+)$/)?.[1] - const definition = name === undefined ? undefined : definitions.get(name) - if (request.method !== "POST" || name === undefined) return new Response("Not found", { status: 404 }) - if (definition === undefined) return new Response("Tool handler not registered", { status: 404 }) - return execute(request, name, definition, indexes, active, background) - }, - }), - ), - (server) => - Effect.gen(function* () { - closing = true - closed = true - yield* Effect.all(closeControls, { discard: true }) - yield* Effect.sync(() => { - for (const controller of active.keys()) controller.abort(new Error("Drive tool controller stopped")) - }) - yield* Effect.promise(() => Promise.allSettled(active.values())) - background.clear() - yield* Effect.promise(() => server.stop(true)) - }), - ) - const endpoint = `http://${server.hostname}:${server.port}` - const plugin = fileURLToPath(new URL("./plugin.js", import.meta.url)) - const schemas = Object.fromEntries( - [...definitions].map(([name, definition]) => [ - name, - JSON.parse(JSON.stringify(Schema.toJsonSchemaDocument(definition.schema).schema)), - ]), - ) - - return { - enabled: true, - controls, - names: new Set(definitions.keys()), - configure(config) { - const current = config.plugins - if (current !== undefined && !Array.isArray(current)) throw new Error("OpenCode config plugins must be an array") - config.plugins = [ - ...(current ?? []), - { - package: plugin, - options: { endpoint, token, tools: [...definitions.keys()], schemas }, - }, - ] as JsonValue - }, - } satisfies Controller -}) - -function makeControlledHandler( - name: Name, -): { - readonly calls: ControlledCalls - readonly handler: Handler - readonly close: Effect.Effect -} { - type Call = ControlledCall - type Waiter = { - readonly id?: string - readonly resume: (effect: Effect.Effect) => void - delivered?: Active - } - type Interruption = "transport-interrupted" | "controller-closed" - type Active = { - readonly call: Call - claimed: boolean - readonly interrupt: (reason: Interruption) => void - } - - const records = new Map() - const waiters: Waiter[] = [] - let closed = false - - const deliver = (record: Active) => { - // A caller waiting for this exact ID wins over an earlier generic waiter. - const exact = waiters.findIndex((waiter) => waiter.id === record.call.id) - const index = exact >= 0 ? exact : waiters.findIndex((waiter) => waiter.id === undefined) - if (index < 0) { - record.claimed = false - return - } - const [waiter] = waiters.splice(index, 1) - if (waiter === undefined) throw new Error(`missing ${name} tool call waiter`) - record.claimed = true - waiter.delivered = record - waiter.resume(Effect.succeed(record.call)) - } - - const offer = (record: Active) => - Effect.suspend(() => { - const id = record.call.id - if (closed) - return Effect.fail( - new Failure({ - message: controlError("take", "controller-closed", name, id).message, - }), - ) - if (records.has(id)) - return Effect.fail( - new Failure({ - message: `duplicate ${name} tool call ID: ${id}`, - }), - ) - records.set(id, record) - deliver(record) - return Effect.void - }) - - function take(): Effect.Effect - function take(id: string): Effect.Effect - function take(id?: string): Effect.Effect { - return Effect.callback((resume) => { - if (closed) { - resume(Effect.fail(controlError("take", "controller-closed", name, id))) - return undefined - } - if (id !== undefined && (records.get(id)?.claimed === true || waiters.some((waiter) => waiter.id === id))) { - resume(Effect.fail(controlError("take", "already-claimed", name, id))) - return undefined - } - let record = id === undefined ? undefined : records.get(id) - if (id === undefined) { - for (const candidate of records.values()) { - if (candidate.claimed) continue - record = candidate - break - } - } - if (record !== undefined) { - record.claimed = true - resume(Effect.succeed(record.call)) - return Effect.sync(() => { - if (!closed && records.get(record.call.id) === record) { - record.claimed = false - deliver(record) - } - return undefined - }) - } - const waiter: Waiter = { id, resume } - waiters.push(waiter) - return Effect.sync(() => { - const index = waiters.indexOf(waiter) - if (index >= 0) { - waiters.splice(index, 1) - return undefined - } - const delivered = waiter.delivered - if (delivered !== undefined && !closed && records.get(delivered.call.id) === delivered) { - delivered.claimed = false - deliver(delivered) - } - return undefined - }) - }) - } - - const handler: Handler = (context) => - Effect.uninterruptibleMask((restore) => - Effect.gen(function* () { - const result = Deferred.makeUnsafe() - const interrupted = Deferred.makeUnsafe() - const operations = Semaphore.makeUnsafe(1) - let state: "pending" | "settled" | Interruption = "pending" - const unavailable = (operation: ControlError["operation"]) => { - if (state === "pending") return undefined - return controlError(operation, state === "settled" ? "already-settled" : state, name, context.id) - } - const commit = (operation: "succeed" | "fail", completion: Effect.Effect) => - // Accepted progress must finish before the one terminal commitment. - operations.withPermit( - Effect.suspend(() => { - const failure = unavailable(operation) - if (failure !== undefined) return Effect.fail(failure) - return Effect.sync(() => { - state = "settled" - return Deferred.doneUnsafe(result, completion) - ? undefined - : controlError(operation, "already-settled", name, context.id) - }).pipe(Effect.flatMap((failure) => (failure === undefined ? Effect.void : Effect.fail(failure)))) - }), - ) - const call: Call = { - id: context.id, - input: context.input, - index: context.index, - progress: (output) => - operations.withPermit( - Effect.suspend(() => { - const failure = unavailable("progress") - return failure === undefined ? context.progress(output) : Effect.fail(failure) - }), - ), - succeed: (output) => commit("succeed", Effect.succeed(output)), - fail: (message) => commit("fail", Effect.fail(new Failure({ message }))), - awaitInterrupted: () => Deferred.await(interrupted), - } - const record: Active = { - call, - claimed: false, - interrupt: (reason) => { - if (state !== "pending") return - state = reason - Deferred.doneUnsafe(interrupted, Effect.void) - Deferred.doneUnsafe(result, Effect.interrupt) - }, - } - return yield* offer(record).pipe( - Effect.andThen(restore(Deferred.await(result))), - Effect.onInterrupt(() => Effect.sync(() => record.interrupt("transport-interrupted"))), - Effect.ensuring( - Effect.sync(() => { - if (records.get(context.id) === record) records.delete(context.id) - }), - ), - ) - }), - ) - - const close = Effect.sync(() => { - if (closed) return - closed = true - for (const waiter of waiters) waiter.resume(Effect.fail(controlError("take", "controller-closed", name, waiter.id))) - waiters.length = 0 - for (const record of records.values()) record.interrupt("controller-closed") - }) - - return { calls: { take }, handler, close } -} - -function execute( - request: Request, - name: string, - definition: Definition, - indexes: Map, - active: Map>, - background: Map, -) { - const transport = new TransformStream() - const writer = transport.writable.getWriter() - const controller = new AbortController() - const signal = AbortSignal.any([request.signal, controller.signal]) - const send = (event: Event) => - Effect.suspend(() => { - const frame = encodeEvent(event) - return Effect.promise(() => writer.write(frame)) - }) - let launched: BackgroundJob | undefined - const result = Effect.gen(function* () { - const body = yield* Schema.decodeUnknownEffect(ExecutionRequest)(yield* Effect.promise(() => request.json())) - const input = body.input - if (name === "shell" && isBackgroundShell(input)) { - const shellID = body.context.callID - if (shellID.length === 0) return yield* Effect.die(new Error("Background shell requires a tool call ID")) - const key = JSON.stringify(input) - const existing = background.get(shellID) - if (existing !== undefined) { - if (existing.input !== key) - return yield* Effect.die(new Error(`Background shell ID reused with different input: ${shellID}`)) - return { - output: "The command was moved to the background.", - shellID, - status: "running" as const, - } - } - const index = nextIndex(indexes, name) - const job = startBackgroundShell(definition, input, index, shellID, key, active) - background.set(shellID, job) - launched = job - return { - output: "The command was moved to the background.", - shellID, - status: "running" as const, - } - } - const index = nextIndex(indexes, name) - return yield* definition.invoke(input, index, body.context.callID, (value) => - send({ type: "progress", result: value }), - ) - }) - void writer.closed.catch((cause) => controller.abort(cause)) - const completion = (async () => { - try { - const exit = await Effect.runPromiseExit(result, { signal }) - if (signal.aborted) throw signal.reason ?? new Error("Drive tool execution interrupted") - if (Exit.isSuccess(exit)) await Effect.runPromise(send({ type: "success", result: exit.value }), { signal }) - else { - await Effect.runPromise( - send({ - type: "failure", - message: causeMessage(exit.cause), - }), - { signal }, - ) - } - await writer.close() - } catch { - if (launched !== undefined) launched.cancel() - await writer.abort().catch(() => undefined) - } finally { - active.delete(controller) - } - })() - active.set(controller, completion) - return new Response(transport.readable, { - headers: { "content-type": "application/x-ndjson" }, - }) -} - -function isBackgroundShell(input: unknown): input is { readonly command: string; readonly background: true } { - return ( - typeof input === "object" && - input !== null && - "background" in input && - input.background === true && - "command" in input && - typeof input.command === "string" - ) -} - -function startBackgroundShell( - definition: Definition, - input: { readonly command: string; readonly background: true }, - index: number, - shellID: string, - inputKey: string, - active: Map>, -): BackgroundJob { - const controller = new AbortController() - let output = "" - const result = definition.invoke(input, index, shellID, (value) => - Effect.sync(() => { - encodeEvent({ type: "progress", result: value }) - output = value.output - }), - ) - const completion = Effect.runPromiseExit(result, { signal: controller.signal }) - .then((exit): BackgroundCompletion => { - if (Exit.isSuccess(exit)) { - encodeEvent({ type: "success", result: exit.value }) - return { shellID, command: input.command, state: "completed", output: exit.value.output } - } - if (controller.signal.aborted) - return { shellID, command: input.command, state: "cancelled", output: output || "Command cancelled" } - const message = causeMessage(exit.cause) - return { - shellID, - command: input.command, - state: "error", - output: errorOutput(output, message), - } - }) - .catch( - (cause): BackgroundCompletion => ({ - shellID, - command: input.command, - state: controller.signal.aborted ? "cancelled" : "error", - output: errorOutput(output, cause instanceof Error ? cause.message : String(cause)), - }), - ) - .finally(() => active.delete(controller)) - active.set(controller, completion) - return { - input: inputKey, - completion, - cancel: () => controller.abort(new Error("Background shell launch disconnected")), - } -} - -function nextIndex(indexes: Map, name: string): number { - const index = indexes.get(name) ?? 0 - indexes.set(name, index + 1) - return index -} - -function encodeEvent(event: Event): Uint8Array { - const frame = encoder.encode(`${JSON.stringify(event)}\n`) - if (frame.byteLength > MAX_EVENT_BYTES) throw new Error(`Drive tool event exceeds ${MAX_EVENT_BYTES} bytes`) - return frame -} - -function boundedOutput(output: string): string { - const bytes = Buffer.from(output) - return bytes.byteLength <= MAX_EVENT_BYTES ? output : bytes.subarray(0, MAX_EVENT_BYTES).toString("utf8") -} - -function errorOutput(output: string, message: string): string { - if (!output) return boundedOutput(message) - const suffix = `\n${message}` - const suffixBytes = Buffer.from(suffix) - if (suffixBytes.byteLength >= MAX_EVENT_BYTES) return boundedOutput(message) - const prefix = Buffer.from(output.replace(/\n$/, "")) - .subarray(0, MAX_EVENT_BYTES - suffixBytes.byteLength) - .toString("utf8") - return `${prefix}${suffix}` -} - -function causeMessage(cause: Cause.Cause): string { - const failure = Cause.findErrorOption(cause) - const error = Option.isSome(failure) ? failure.value : Cause.squash(cause) - return error instanceof Failure ? error.message : error instanceof Error ? error.message : String(error) -} diff --git a/packages/drive/src/tool/index.ts b/packages/drive/src/tool/index.ts deleted file mode 100644 index 972201f113c..00000000000 --- a/packages/drive/src/tool/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./types.js" diff --git a/packages/drive/src/tool/plugin.js b/packages/drive/src/tool/plugin.js deleted file mode 100644 index 7c69bbc3a7c..00000000000 --- a/packages/drive/src/tool/plugin.js +++ /dev/null @@ -1,167 +0,0 @@ -import { Effect, Schedule, Schema, Scope } from "effect" - -const MAX_BUFFER_CHARS = 1024 * 1024 -const BACKGROUND_INSTRUCTION = - "You will be notified automatically when the command finishes. DO NOT sleep, poll, or proactively check on its progress." -const descriptions = { - shell: "Executes a shell command.", - webfetch: "Fetch content from an HTTP or HTTPS URL and return it as text, markdown, or HTML.", - websearch: "Search the web using the session's local web search provider.", - write: "Writes a file to the local filesystem, overwriting if one exists.", -} - -class ToolFailure extends Schema.TaggedErrorClass()("LLM.ToolFailure", { - message: Schema.String, -}) {} - -const content = (result) => [ - { type: "text", text: result.output }, - ...(result.status === "running" ? [{ type: "text", text: BACKGROUND_INSTRUCTION }] : []), -] - -const output = (result) => ({ - output: result, - content: content(result), -}) - -const progress = (result) => ({ - structured: result, - content: content(result), -}) - -const failure = (cause) => - cause instanceof ToolFailure - ? cause - : new ToolFailure({ message: cause instanceof Error ? cause.message : String(cause) }) - -const parse = (line) => - Effect.try({ - try: () => JSON.parse(line), - catch: (cause) => failure(cause), - }) - -const waitForBackground = (options, shellID) => - Effect.gen(function* () { - const response = yield* Effect.tryPromise({ - try: (signal) => - fetch(`${options.endpoint}/background/${shellID}`, { - headers: { authorization: `Bearer ${options.token}` }, - signal, - }), - catch: failure, - }) - if (!response.ok) - return yield* new ToolFailure({ message: `Drive background shell returned HTTP ${response.status}` }) - return yield* Effect.tryPromise({ - try: () => response.json(), - catch: failure, - }) - }) - -const notifyWhenDone = (ctx, options, sessionID, shellID) => - Effect.gen(function* () { - const completion = yield* waitForBackground(options, shellID).pipe( - Effect.retry({ times: 3, schedule: Schedule.spaced("100 millis") }), - ) - yield* ctx.session - .synthetic({ - id: `msg_${shellID}_completion`, - sessionID, - text: `\n${completion.output}\n`, - description: completion.command, - metadata: { source: "shell", state: completion.state }, - }) - .pipe(Effect.retry({ times: 3, schedule: Schedule.spaced("100 millis") })) - yield* Effect.tryPromise({ - try: (signal) => - fetch(`${options.endpoint}/background/${shellID}`, { - method: "DELETE", - headers: { authorization: `Bearer ${options.token}` }, - signal, - }).then((response) => { - if (!response.ok) throw new Error(`Drive background shell acknowledgement returned HTTP ${response.status}`) - }), - catch: failure, - }).pipe(Effect.retry({ times: 3, schedule: Schedule.spaced("100 millis") })) - }).pipe(Effect.catch((cause) => Effect.logError("Drive background shell notification failed", cause))) - -const execute = (ctx, scope, options, name, input, context) => - Effect.gen(function* () { - const response = yield* Effect.tryPromise({ - try: (signal) => - fetch(`${options.endpoint}/execute/${name}`, { - method: "POST", - headers: { - authorization: `Bearer ${options.token}`, - "content-type": "application/json", - }, - body: JSON.stringify({ - input, - context: { callID: context.id }, - }), - signal, - }), - catch: failure, - }) - if (!response.ok || !response.body) - return yield* new ToolFailure({ message: `Drive tool handler returned HTTP ${response.status}` }) - - const reader = response.body.getReader() - return yield* Effect.acquireUseRelease( - Effect.succeed(reader), - (reader) => - Effect.gen(function* () { - const decoder = new TextDecoder() - let buffer = "" - let result - while (true) { - const chunk = yield* Effect.tryPromise({ - try: () => reader.read(), - catch: failure, - }) - buffer += decoder.decode(chunk.value, { stream: !chunk.done }) - if (buffer.length > MAX_BUFFER_CHARS) - return yield* new ToolFailure({ - message: `Drive tool event exceeds ${MAX_BUFFER_CHARS} characters`, - }) - let newline - while ((newline = buffer.indexOf("\n")) !== -1) { - const line = buffer.slice(0, newline) - buffer = buffer.slice(newline + 1) - if (!line) continue - const event = yield* parse(line) - if (event.type === "progress") yield* context.progress(progress(event.result)) - if (event.type === "success") result = event.result - if (event.type === "failure") return yield* new ToolFailure({ message: event.message }) - } - if (chunk.done) break - } - if (!result) return yield* new ToolFailure({ message: "Drive tool handler ended without a result" }) - if (name === "shell" && result.status === "running" && result.shellID) - yield* notifyWhenDone(ctx, options, context.sessionID, result.shellID).pipe( - Effect.forkIn(scope, { startImmediately: true }), - ) - return output(result) - }), - (reader) => Effect.promise(() => reader.cancel().catch(() => undefined)), - ) - }) - -export default { - id: "opencode-drive.tool-handlers", - effect: (ctx) => - Effect.gen(function* () { - const scope = yield* Scope.Scope - yield* ctx.tool.transform((tools) => { - for (const name of ctx.options.tools) { - tools.add({ - name, - description: descriptions[name], - input: ctx.options.schemas[name], - options: { codemode: false }, - execute: (input, context) => execute(ctx, scope, ctx.options, name, input, context), - }) - } - }) - }), -} diff --git a/packages/drive/src/tool/producer.ts b/packages/drive/src/tool/producer.ts deleted file mode 100644 index dcd44edfeb5..00000000000 --- a/packages/drive/src/tool/producer.ts +++ /dev/null @@ -1,831 +0,0 @@ -import { createHash } from "node:crypto" -import * as Cause from "effect/Cause" -import * as Deferred from "effect/Deferred" -import * as Effect from "effect/Effect" -import * as Exit from "effect/Exit" -import * as Queue from "effect/Queue" -import * as Ref from "effect/Ref" -import * as Schema from "effect/Schema" -import * as Semaphore from "effect/Semaphore" -import * as Scope from "effect/Scope" -import * as Stream from "effect/Stream" -import { RpcClientError } from "effect/unstable/rpc" -import { - SimulationCompatibilityError, - SimulationConnectionError, - type BackendConnection, -} from "../simulation/connector.js" -import { Backend, SimulationRequestError } from "@opencode-ai/protocol/simulation" -import { - LifecycleError, - type AttachParams, - type Cancellation, - type DynamicControls, - type Invocation, - type Output, - Progress, -} from "./types.js" - -export interface BackendAttachment { - readonly detach: () => Effect.Effect -} - -export interface Controller { - readonly controls: DynamicControls - readonly connect: (backend: BackendConnection) => Effect.Effect - readonly connectFrom: ( - backend: Effect.Effect, - ) => Effect.Effect< - { readonly backend: BackendConnection; readonly attachment: BackendAttachment }, - E | LifecycleError, - R - > - readonly endGeneration: Effect.Effect - readonly settle: Effect.Effect - readonly shutdown: Effect.Effect - readonly failure: Effect.Effect -} - -type Waiter = { - readonly callID?: string - readonly resume: (effect: Effect.Effect) => void - delivered?: Active -} - -type Active = { - readonly fingerprint: string - readonly call: Invocation - readonly cancelled: Deferred.Deferred - readonly operations: Semaphore.Semaphore - claimed: boolean - sequence: number - state: "pending" | "settled" | "cancelled" -} - -type AttachmentIntent = { - readonly params: AttachParams - previous: AttachmentIntent | undefined - readonly rejection: Deferred.Deferred - attempted: boolean -} - -const decodeAttach = Schema.decodeUnknownEffect(Backend.ToolAttachParams) -const decodeProgress = Schema.decodeUnknownEffect(Progress) -const decodeOutput = Schema.decodeUnknownEffect(Backend.ToolOutput) -const decodeFailure = Schema.decodeUnknownEffect(Schema.String) -const decodeCallID = Schema.decodeUnknownEffect(Schema.String) - -export const make = Effect.fn("ToolProducer.make")(function* (staticNames: ReadonlySet) { - const parentScope = yield* Scope.Scope - const lifecycle = yield* Semaphore.make(1) - const attachmentCalls = yield* Semaphore.make(1) - const attachmentLock = yield* Semaphore.make(1) - const connectionCalls = yield* Semaphore.make(1) - const records = new Map() - const waiters: Waiter[] = [] - const completed = new Map() - const unclaimedCancellations: Active[] = [] - const backendChanges = yield* Queue.sliding(1) - const failure = yield* Deferred.make() - const settlementStarted = yield* Deferred.make() - const current = yield* Ref.make< - | { - readonly backend: BackendConnection - readonly scope: Scope.Scope - readonly disconnected: Deferred.Deferred - } - | undefined - >(undefined) - let desired: AttachmentIntent | undefined - let acknowledged: AttachmentIntent | undefined - let terminalFailure: LifecycleError | undefined - let generationActive = false - let generationEnded = Deferred.makeUnsafe() - let settling = false - let settled = false - let closed = false - - const lifecycleError = ( - operation: LifecycleError["operation"], - reason: LifecycleError["reason"], - message: string, - callID?: string, - ) => - new LifecycleError({ - operation, - reason, - message, - ...(callID === undefined ? {} : { callID }), - }) - - const rejectIntent = (intent: AttachmentIntent, error: LifecycleError) => - Effect.sync(() => { - if (desired === intent) desired = intent.previous - if (acknowledged === intent) acknowledged = intent.previous - Deferred.doneUnsafe(intent.rejection, Effect.fail(error)) - }) - - const publishFailure = (error: LifecycleError) => - Effect.sync(() => { - if (terminalFailure !== undefined) return - terminalFailure = error - Deferred.doneUnsafe(failure, Effect.fail(error)) - }) - - const notifyBackend = Queue.offer(backendChanges, undefined).pipe(Effect.asVoid) - - const remember = (id: string, fingerprint: string) => { - completed.set(id, fingerprint) - if (completed.size > 256) { - const oldest = completed.keys().next().value - if (oldest !== undefined) completed.delete(oldest) - } - } - - const retainCancellation = (record: Active) => { - unclaimedCancellations.push(record) - if (unclaimedCancellations.length <= 256) return - const oldest = unclaimedCancellations.shift() - if ( - oldest !== undefined && - records.get(oldest.call.id) === oldest && - oldest.state === "cancelled" && - !oldest.claimed - ) - records.delete(oldest.call.id) - } - - const deliver = (record: Active) => { - const callID = record.call.context.callID - const exact = waiters.findIndex((waiter) => waiter.callID === callID) - const index = exact >= 0 ? exact : waiters.findIndex((waiter) => waiter.callID === undefined) - if (index < 0) { - record.claimed = false - return - } - const waiter = waiters.splice(index, 1)[0] - if (waiter === undefined) throw new Error(`missing dynamic tool waiter for ${record.call.id}`) - record.claimed = true - waiter.delivered = record - waiter.resume(Effect.succeed(record.call)) - if (record.state === "cancelled") records.delete(record.call.id) - } - - const awaitBackend = ( - operation: LifecycleError["operation"], - callID: string | undefined, - ): Effect.Effect => - Effect.suspend(() => - closed - ? Effect.fail(lifecycleError(operation, "controller-closed", "dynamic tool controller is closed", callID)) - : Ref.get(current).pipe( - Effect.flatMap((attached) => - attached === undefined - ? Queue.take(backendChanges).pipe(Effect.andThen(awaitBackend(operation, callID))) - : Effect.succeed(attached.backend), - ), - ), - ) - - const whileConnected = ( - backend: BackendConnection, - operation: LifecycleError["operation"], - effect: Effect.Effect, - ) => - Effect.raceFirst( - effect, - backend.closed.pipe( - Effect.andThen( - Effect.fail( - new SimulationConnectionError({ - endpoint: backend.endpoint, - operation, - message: `dynamic tool ${operation} connection closed`, - }), - ), - ), - ), - ) - - const request = ( - operation: LifecycleError["operation"], - callID: string | undefined, - send: (backend: BackendConnection) => Effect.Effect, - ): Effect.Effect => - Effect.gen(function* () { - if (closed) - return yield* Effect.fail( - lifecycleError(operation, "controller-closed", "dynamic tool controller is closed", callID), - ) - const backend = yield* awaitBackend(operation, callID) - const result = yield* Effect.exit(whileConnected(backend, operation, send(backend))) - if (Exit.isSuccess(result)) return result.value - if (Cause.hasInterrupts(result.cause)) return yield* Effect.interrupt - const found = Cause.findErrorOption(result.cause) - if (found._tag === "None") { - const defect = Cause.squash(result.cause) - if (Schema.isSchemaError(defect)) - return yield* Effect.fail(lifecycleError(operation, "rejected", defect.message, callID)) - return yield* Effect.die(defect) - } - if (found.value instanceof SimulationRequestError || found.value instanceof SimulationCompatibilityError) - return yield* Effect.fail(lifecycleError(operation, "rejected", found.value.message, callID)) - if ( - !(found.value instanceof SimulationConnectionError) && - !(found.value instanceof RpcClientError.RpcClientError && isTransientRpcError(found.value)) - ) - return yield* Effect.fail(lifecycleError(operation, "rejected", String(found.value), callID)) - yield* Effect.sleep(25) - return yield* request(operation, callID, send) - }) - - const unavailable = (record: Active, operation: LifecycleError["operation"]) => - record.state === "pending" - ? undefined - : lifecycleError( - operation, - record.state === "settled" ? "already-settled" : "cancelled", - record.state === "settled" - ? `dynamic tool call ${record.call.context.callID} is settled` - : `dynamic tool call ${record.call.context.callID} was cancelled`, - record.call.context.callID, - ) - - const operate = ( - record: Active, - operation: "progress" | "finish" | "fail", - effect: Effect.Effect, - ) => - record.operations.withPermit( - Effect.suspend(() => { - const error = unavailable(record, operation) - if (error !== undefined) return Effect.fail(error) - return Effect.raceFirst( - effect, - Deferred.await(record.cancelled).pipe( - Effect.andThen( - Effect.fail( - lifecycleError( - operation, - "cancelled", - `dynamic tool call ${record.call.context.callID} was cancelled`, - record.call.context.callID, - ), - ), - ), - ), - ) - }), - ) - - const commit = (record: Active, operation: "finish" | "fail", effect: Effect.Effect) => - operate( - record, - operation, - effect.pipe( - Effect.andThen( - Effect.sync(() => { - record.state = "settled" - records.delete(record.call.id) - remember(record.call.id, record.fingerprint) - }), - ), - ), - ) - - const makeInvocation = (invocation: Backend.ToolInvocation, fingerprint: string): Active => { - const cancelled = Deferred.makeUnsafe() - const operations = Semaphore.makeUnsafe(1) - let record: Active - const call: Invocation = { - id: invocation.id, - name: invocation.name, - input: invocation.input, - context: { - sessionID: invocation.context.sessionID, - agent: invocation.context.agent, - messageID: invocation.context.messageID, - callID: invocation.context.id, - }, - progress: (update: Progress) => - operate( - record, - "progress", - decodeProgress(update).pipe( - Effect.mapError((error) => lifecycleError("progress", "rejected", error.message, invocation.context.id)), - Effect.flatMap((decoded) => - request("progress", invocation.context.id, (backend) => - backend.updateTool({ - id: invocation.id, - sequence: record.sequence, - update: decoded, - }), - ), - ), - Effect.andThen( - Effect.sync(() => { - record.sequence++ - }), - ), - ), - ), - finish: (output: Output) => - commit( - record, - "finish", - decodeOutput(output).pipe( - Effect.mapError((error) => lifecycleError("finish", "rejected", error.message, invocation.context.id)), - Effect.flatMap((decoded) => - request("finish", invocation.context.id, (backend) => - backend.finishTool({ id: invocation.id, output: decoded }), - ), - ), - ), - ), - fail: (message) => - commit( - record, - "fail", - decodeFailure(message).pipe( - Effect.mapError((error) => lifecycleError("fail", "rejected", error.message, invocation.context.id)), - Effect.flatMap((decoded) => - request("fail", invocation.context.id, (backend) => - backend.failTool({ id: invocation.id, message: decoded }), - ), - ), - ), - ), - awaitCancelled: () => Deferred.await(cancelled), - } - record = { - fingerprint, - call, - cancelled, - operations, - claimed: false, - sequence: 0, - state: "pending", - } - return record - } - - const receiveInvocation = (invocation: Backend.ToolInvocation) => - lifecycle.withPermit( - Effect.gen(function* () { - const fingerprint = fingerprintJson(invocation) - const existing = records.get(invocation.id) - if (existing !== undefined) { - if (existing.fingerprint !== fingerprint) - yield* publishFailure( - lifecycleError( - "take", - "rejected", - `dynamic tool invocation ${invocation.id} was replayed with different input`, - invocation.context.id, - ), - ) - return - } - const settled = completed.get(invocation.id) - if (settled !== undefined) { - if (settled !== fingerprint) - yield* publishFailure( - lifecycleError( - "take", - "rejected", - `dynamic tool invocation ${invocation.id} was reused with different input`, - invocation.context.id, - ), - ) - return - } - const record = makeInvocation(invocation, fingerprint) - records.set(invocation.id, record) - deliver(record) - }), - ) - - const receiveCancellation = (cancellation: Cancellation) => - lifecycle.withPermit( - Effect.sync(() => { - const record = records.get(cancellation.id) - if (record === undefined || record.state !== "pending") return - record.state = "cancelled" - remember(cancellation.id, record.fingerprint) - Deferred.doneUnsafe(record.cancelled, Effect.succeed(cancellation)) - if (record.claimed) records.delete(cancellation.id) - else { - deliver(record) - if (!record.claimed) retainCancellation(record) - } - }), - ) - - const connectBackend: Controller["connect"] = (backend) => - lifecycle.withPermit( - Effect.gen(function* () { - if (closed) - return yield* Effect.fail(lifecycleError("attach", "controller-closed", "dynamic tool controller is closed")) - if ((yield* Ref.get(current)) !== undefined) - return yield* Effect.fail(lifecycleError("attach", "rejected", "dynamic tool backend is already connected")) - const scope = yield* Scope.fork(parentScope) - yield* backend.toolEvents.pipe( - Stream.runForEach((event) => { - if (event.type === "invocation") return receiveInvocation(event.invocation) - if (event.type === "cancellation") return receiveCancellation(event.cancellation) - return Deferred.succeed(event.completed, undefined).pipe(Effect.asVoid) - }), - Effect.matchCauseEffect({ - onFailure: (cause) => { - const error = lifecycleError( - "take", - "rejected", - `dynamic tool event stream failed: ${Cause.pretty(cause)}`, - ) - return publishFailure(error) - }, - onSuccess: () => Effect.void, - }), - Effect.forkIn(scope), - ) - let replayed: AttachmentIntent | undefined - const applied = yield* Effect.exit( - attachmentLock.withPermit( - Effect.suspend(() => { - const intent = desired - if (intent === undefined) return Effect.void - replayed = intent - intent.attempted = true - const reject = (error: unknown) => - lifecycleError( - "attach", - isTransientConnectionError(error) ? "transport-interrupted" : "rejected", - String(error), - ) - return whileConnected(backend, "attach", backend.attachTools(intent.params.tools)).pipe( - Effect.tapError((error) => - error instanceof SimulationRequestError || error instanceof SimulationCompatibilityError - ? rejectIntent(intent, reject(error)) - : Effect.void, - ), - Effect.mapError(reject), - ) - }), - ), - ) - if (Exit.isFailure(applied)) { - yield* Scope.close(scope, Exit.void) - const defect = Cause.squash(applied.cause) - if (Schema.isSchemaError(defect)) { - const error = lifecycleError("attach", "rejected", defect.message) - if (replayed !== undefined) yield* rejectIntent(replayed, error) - return yield* Effect.fail(error) - } - const found = Cause.findErrorOption(applied.cause) - if ( - replayed !== undefined && - found._tag === "Some" && - found.value instanceof LifecycleError && - found.value.reason === "rejected" - ) - yield* rejectIntent(replayed, found.value) - return yield* Effect.failCause(applied.cause) - } - yield* Effect.sync(() => { - if (!generationActive) generationEnded = Deferred.makeUnsafe() - generationActive = true - }) - const disconnected = Deferred.makeUnsafe() - yield* Ref.set(current, { backend, scope, disconnected }) - yield* notifyBackend - const detach = Effect.fn("ToolProducer.detach")(function* () { - const shouldClose = yield* lifecycle.withPermit( - Effect.gen(function* () { - const attached = yield* Ref.get(current) - if (attached?.backend !== backend) return false - yield* Ref.set(current, undefined) - Deferred.doneUnsafe(disconnected, Effect.void) - yield* notifyBackend - return true - }), - ) - if (shouldClose) yield* Scope.close(scope, Exit.void) - }) - return { detach } - }), - ) - - const connectionClosed = () => lifecycleError("attach", "controller-closed", "dynamic tool controller is settled") - - const connect: Controller["connect"] = (backend) => - connectionCalls.withPermit( - Effect.suspend(() => (settled ? Effect.fail(connectionClosed()) : connectBackend(backend))), - ) - - const connectFrom: Controller["connectFrom"] = (backend) => - connectionCalls.withPermit( - Effect.suspend(() => - settled - ? Effect.fail(connectionClosed()) - : backend.pipe( - Effect.flatMap((backend) => - connectBackend(backend).pipe(Effect.map((attachment) => ({ backend, attachment }))), - ), - ), - ), - ) - - const replace = (params: AttachParams, duringSettlement = false) => - Effect.gen(function* () { - const previous = acknowledged - const intent: AttachmentIntent = { - params, - previous, - rejection: Deferred.makeUnsafe(), - attempted: false, - } - desired = intent - const rollback = Effect.sync(() => { - if (desired === intent) desired = previous - }) - const apply = Effect.raceFirst( - request("attach", undefined, (backend) => - attachmentLock.withPermit( - Effect.suspend(() => { - if (desired !== intent) return Effect.succeed({ attached: true as const }) - intent.attempted = true - return backend.attachTools(params.tools).pipe( - Effect.tapError((error) => { - if (!(error instanceof SimulationRequestError) && !(error instanceof SimulationCompatibilityError)) - return Effect.void - return rejectIntent(intent, lifecycleError("attach", "rejected", error.message)) - }), - ) - }), - ), - ).pipe( - Effect.tapError((error) => (error.reason === "rejected" ? rejectIntent(intent, error) : Effect.void)), - Effect.tapError(() => (intent.attempted ? Effect.void : rollback)), - Effect.onInterrupt(() => (intent.attempted ? Effect.void : rollback)), - ), - Deferred.await(intent.rejection), - ) - yield* duringSettlement - ? apply - : Effect.raceFirst( - apply, - Deferred.await(settlementStarted).pipe( - Effect.andThen( - Effect.fail(lifecycleError("attach", "controller-closed", "dynamic tool controller is settling")), - ), - ), - ) - if (desired === intent) { - intent.previous = undefined - acknowledged = intent - } - }) - - const attach: DynamicControls["attach"] = (params) => - Effect.gen(function* () { - const decoded = yield* decodeAttach(params).pipe( - Effect.mapError((error) => lifecycleError("attach", "rejected", error.message)), - ) - const collision = decoded.tools.map(Backend.exposedToolName).find((name) => staticNames.has(name)) - if (collision !== undefined) - yield* Effect.fail( - lifecycleError("attach", "rejected", `dynamic tool conflicts with configured static adapter: ${collision}`), - ) - yield* attachmentCalls.withPermit( - Effect.suspend(() => - settling - ? Effect.fail(lifecycleError("attach", "controller-closed", "dynamic tool controller is settling")) - : replace(decoded), - ), - ) - return undefined - }) - - function take(): Effect.Effect - function take(callID: string): Effect.Effect - function take(callID?: string): Effect.Effect { - const decoded: Effect.Effect = - callID === undefined - ? Effect.succeed(undefined) - : decodeCallID(callID).pipe(Effect.mapError((error) => lifecycleError("take", "rejected", error.message))) - return decoded.pipe( - Effect.flatMap((callID) => - Effect.callback((resume) => { - if (closed || settled) { - resume( - Effect.fail( - lifecycleError( - "take", - "controller-closed", - settled ? "dynamic tool controller is settled" : "dynamic tool controller is closed", - callID, - ), - ), - ) - return undefined - } - if ( - callID !== undefined && - (Array.from(records.values()).some((record) => record.call.context.callID === callID && record.claimed) || - waiters.some((waiter) => waiter.callID === callID)) - ) { - resume( - Effect.fail( - lifecycleError("take", "already-claimed", `dynamic tool call is already claimed: ${callID}`, callID), - ), - ) - return undefined - } - let record = Array.from(records.values()).find( - (candidate) => !candidate.claimed && (callID === undefined || candidate.call.context.callID === callID), - ) - if (record !== undefined) { - record.claimed = true - resume(Effect.succeed(record.call)) - if (record.state === "cancelled") records.delete(record.call.id) - return Effect.sync(() => { - if (record !== undefined && records.get(record.call.id) === record) { - record.claimed = false - deliver(record) - } - }) - } - const waiter: Waiter = { callID, resume } - waiters.push(waiter) - return Effect.sync(() => { - const index = waiters.indexOf(waiter) - if (index >= 0) waiters.splice(index, 1) - else if (waiter.delivered !== undefined) { - record = waiter.delivered - if (records.get(record.call.id) === record) { - record.claimed = false - deliver(record) - } - } - }) - }), - ), - ) - } - - const endGeneration = lifecycle.withPermit( - Effect.gen(function* () { - generationActive = false - Deferred.doneUnsafe(generationEnded, Effect.void) - const attached = yield* Ref.get(current) - if (attached !== undefined) { - yield* Ref.set(current, undefined) - Deferred.doneUnsafe(attached.disconnected, Effect.void) - yield* Scope.close(attached.scope, Exit.void) - } - for (const record of records.values()) { - if (record.state !== "pending") continue - record.state = "cancelled" - Deferred.doneUnsafe(record.cancelled, Effect.succeed({ id: record.call.id, reason: "interrupted" })) - } - records.clear() - completed.clear() - unclaimedCancellations.length = 0 - yield* notifyBackend - }), - ) - - function commitSettlement(): Effect.Effect { - return Effect.gen(function* () { - const retryAfter = yield* connectionCalls.withPermit( - Effect.gen(function* () { - const attached = yield* Ref.get(current) - if (generationActive && attached === undefined) return generationEnded - if (generationActive && attached !== undefined) { - const drained = yield* Effect.raceFirst( - attached.backend.flushToolEvents().pipe( - Effect.mapError((error) => lifecycleError("take", "rejected", error.message)), - Effect.as(true), - ), - Deferred.await(attached.disconnected).pipe(Effect.as(false)), - ) - if (!drained) return generationEnded - } - if (terminalFailure !== undefined) return yield* Effect.fail(terminalFailure) - yield* lifecycle.withPermit( - Effect.suspend(() => { - if (terminalFailure !== undefined) return Effect.fail(terminalFailure) - const pending = Array.from(records.values()).filter((record) => record.state === "pending").length - if (pending > 0) - return Effect.fail( - lifecycleError("take", "rejected", `${pending} dynamic tool invocation(s) remain unsettled`), - ) - return Effect.sync(() => { - settled = true - for (const waiter of waiters) - waiter.resume( - Effect.fail( - lifecycleError("take", "controller-closed", "dynamic tool controller is settled", waiter.callID), - ), - ) - waiters.length = 0 - }) - }), - ) - return undefined - }), - ) - if (retryAfter === undefined) return - yield* Effect.raceFirst( - Deferred.await(retryAfter), - Effect.raceFirst(awaitBackend("take", undefined).pipe(Effect.asVoid), Deferred.await(failure)), - ) - yield* commitSettlement() - }) - } - - const settle = Effect.sync(() => { - settling = true - Deferred.doneUnsafe(settlementStarted, Effect.void) - }).pipe( - Effect.andThen( - attachmentCalls.withPermit( - Effect.gen(function* () { - yield* connectionCalls.withPermit(Effect.void) - if (terminalFailure !== undefined) return yield* Effect.fail(terminalFailure) - if (generationActive && desired !== undefined) { - const ended = generationEnded - if (desired.params.tools.length > 0) - yield* Effect.raceFirst(replace({ tools: [] }, true), Deferred.await(ended)) - if (generationActive) - yield* Effect.raceFirst( - request("take", undefined, (backend) => backend.flushToolEvents()), - Deferred.await(ended), - ) - } - if (terminalFailure !== undefined) return yield* Effect.fail(terminalFailure) - yield* commitSettlement() - return undefined - }), - ), - ), - ) - - const shutdown = Effect.suspend(() => { - if (closed) return Effect.void - return Effect.sync(() => { - closed = true - for (const waiter of waiters) - waiter.resume( - Effect.fail(lifecycleError("take", "controller-closed", "dynamic tool controller is closed", waiter.callID)), - ) - waiters.length = 0 - }).pipe(Effect.andThen(endGeneration), Effect.ensuring(Queue.shutdown(backendChanges))) - }) - - yield* Effect.addFinalizer(() => shutdown) - - return { - controls: { attach, take }, - connect, - connectFrom, - endGeneration, - settle, - shutdown, - failure: Deferred.await(failure), - } satisfies Controller -}) - -function canonicalJson(value: unknown): string { - if (Array.isArray(value)) return `[${value.map(canonicalJson).join(",")}]` - if (typeof value === "object" && value !== null) { - const entries = Object.entries(value).sort(([left], [right]) => left.localeCompare(right)) - return `{${entries.map(([key, item]) => `${JSON.stringify(key)}:${canonicalJson(item)}`).join(",")}}` - } - return JSON.stringify(value) ?? String(value) -} - -function fingerprintJson(value: unknown) { - return createHash("sha256").update(canonicalJson(value)).digest("base64url") -} - -function isTransientConnectionError(error: unknown) { - return ( - error instanceof SimulationConnectionError || - (error instanceof RpcClientError.RpcClientError && isTransientRpcError(error)) - ) -} - -function isTransientRpcError(error: RpcClientError.RpcClientError) { - if (error.reason._tag !== "RpcClientDefect") return true - const message = error.reason.message - return ( - message.startsWith("cannot connect") || - message === "connection closed" || - message === "connection error" || - message === "connection is not open" || - message === "failed to send request" - ) -} - -export * as ToolProducer from "./producer.js" diff --git a/packages/drive/src/tool/types.ts b/packages/drive/src/tool/types.ts deleted file mode 100644 index 7c8e760eb6c..00000000000 --- a/packages/drive/src/tool/types.ts +++ /dev/null @@ -1,202 +0,0 @@ -import * as Effect from "effect/Effect" -import * as Schema from "effect/Schema" -import { Backend } from "@opencode-ai/protocol/simulation" - -const PositiveInt = Schema.Number.check(Schema.isInt(), Schema.isGreaterThan(0)) - -export const ShellInput = Schema.Struct({ - command: Schema.String.annotate({ description: "Shell command string to execute" }), - workdir: Schema.optional(Schema.String).annotate({ - description: "Working directory. Defaults to the active Location; relative paths resolve from that Location.", - }), - timeout: Schema.optional( - Schema.Number.check(Schema.isFinite(), Schema.isGreaterThanOrEqualTo(0), Schema.isLessThanOrEqualTo(600_000)), - ).annotate({ description: "Optional timeout in milliseconds. Zero means unlimited. May not exceed 600000." }), - background: Schema.optional(Schema.Boolean).annotate({ description: "Run the command in the background." }), -}) -export interface ShellInput extends Schema.Schema.Type {} - -export const ShellResult = Schema.Struct({ - output: Schema.String, - exit: Schema.optional(Schema.Number), - shellID: Schema.optional(Schema.String), - truncated: Schema.optional(Schema.Boolean), - timeout: Schema.optional(Schema.Boolean), - status: Schema.optional(Schema.Literals(["completed", "running"])), - warnings: Schema.optional(Schema.Array(Schema.String)), -}) -export interface ShellResult extends Schema.Schema.Type {} - -export const WebFetchInput = Schema.Struct({ - url: Schema.String.annotate({ description: "The HTTP or HTTPS URL to fetch content from" }), - format: Schema.Literals(["text", "markdown", "html"]) - .annotate({ description: "The format to return the content in. Defaults to markdown." }) - .pipe(Schema.withDecodingDefault(Effect.succeed("markdown" as const))), - timeout: Schema.optional(Schema.Number.check(Schema.isGreaterThan(0), Schema.isLessThanOrEqualTo(120))).annotate({ - description: "Optional timeout in seconds (maximum: 120)", - }), -}) -export interface WebFetchInput extends Schema.Schema.Type {} - -export const WebFetchResult = Schema.Struct({ - output: Schema.String, - url: Schema.optional(Schema.String), - contentType: Schema.optional(Schema.String), - format: Schema.optional(Schema.Literals(["text", "markdown", "html"])), -}) -export interface WebFetchResult extends Schema.Schema.Type {} - -export const WebSearchInput = Schema.Struct({ - query: Schema.String.annotate({ description: "Websearch query" }), - numResults: Schema.optional(PositiveInt.check(Schema.isLessThanOrEqualTo(20))), - livecrawl: Schema.optional(Schema.Literals(["fallback", "preferred"])), - type: Schema.optional(Schema.Literals(["auto", "fast", "deep"])), - contextMaxCharacters: Schema.optional(PositiveInt.check(Schema.isLessThanOrEqualTo(50_000))), -}) -export interface WebSearchInput extends Schema.Schema.Type {} - -export const WebSearchResult = Schema.Struct({ - output: Schema.String, - provider: Schema.optional(Schema.Literals(["exa", "parallel"])), -}) -export interface WebSearchResult extends Schema.Schema.Type {} - -export const WriteInput = Schema.Struct({ - path: Schema.String.annotate({ description: "Path to the file to write to" }), - content: Schema.String.annotate({ description: "Content to write to the file" }), -}) -export interface WriteInput extends Schema.Schema.Type {} - -export const WriteResult = Schema.Struct({ - output: Schema.String, -}) -export interface WriteResult extends Schema.Schema.Type {} - -export class Failure extends Schema.TaggedErrorClass()("OpenCodeDrive.ToolFailure", { - message: Schema.String, -}) {} - -export const Name = Schema.Literals(["shell", "webfetch", "websearch", "write"]) -export type Name = typeof Name.Type -export const Names = Schema.Array(Name) - -export class ControlError extends Schema.TaggedErrorClass()("OpenCodeDrive.ToolControlError", { - operation: Schema.Literals(["control", "take", "progress", "succeed", "fail"]), - reason: Schema.Literals([ - "not-controlled", - "controller-closed", - "already-claimed", - "already-settled", - "transport-interrupted", - ]), - name: Name, - callID: Schema.optional(Schema.String), - message: Schema.String, -}) {} - -export interface Context { - readonly id: string - readonly input: Input - /** Zero-based invocation index for this handler. */ - readonly index: number - readonly progress: (output: string | Result) => Effect.Effect -} - -export type Handler = (context: Context) => Effect.Effect - -export type ShellHandler = Handler -export type WebFetchHandler = Handler -export type WebSearchHandler = Handler -export type WriteHandler = Handler - -export interface ToolTypes { - readonly shell: { readonly input: ShellInput; readonly result: ShellResult } - readonly webfetch: { readonly input: WebFetchInput; readonly result: WebFetchResult } - readonly websearch: { readonly input: WebSearchInput; readonly result: WebSearchResult } - readonly write: { readonly input: WriteInput; readonly result: WriteResult } -} - -export type HandlerFor = Handler - -export type Registration = { - readonly [Tool in Name]: readonly [name: Tool, handler: HandlerFor] -}[Name] - -export interface Registry { - handle(name: Tool, handler: HandlerFor): void -} - -export type Setup = (tools: Registry) => void - -export type Configuration = Setup | typeof Names.Type - -export interface ControlledCall { - readonly id: string - readonly input: Input - readonly index: number - readonly progress: (output: string | Result) => Effect.Effect - readonly succeed: (result: Result) => Effect.Effect - /** Commits a failed remote tool result; this Effect fails only when control is no longer available. */ - readonly fail: (message: string) => Effect.Effect - /** Completes only when interruption wins before `succeed` or `fail`. */ - readonly awaitInterrupted: () => Effect.Effect -} - -export interface ControlledCalls { - take(): Effect.Effect, ControlError> - take(id: string): Effect.Effect, ControlError> -} - -export type ControlledCallsFor = ControlledCalls - -export interface StaticControls { - control(name: Tool): Effect.Effect, ControlError> -} - -export type Content = Backend.ToolContent -export type DynamicRegistration = Backend.ToolRegistration -export type AttachParams = Backend.ToolAttachParams -export const Progress = Schema.Struct({ - structured: Schema.Record(Schema.String, Schema.Json), - content: Schema.optionalKey(Schema.Array(Backend.ToolContent)), -}) -export interface Progress extends Schema.Schema.Type {} -export type Output = Backend.ToolOutput -export type Cancellation = Backend.ToolCancellation - -export class LifecycleError extends Schema.TaggedErrorClass()("OpenCodeDrive.ToolLifecycleError", { - operation: Schema.Literals(["attach", "take", "progress", "finish", "fail"]), - reason: Schema.Literals([ - "controller-closed", - "already-claimed", - "already-settled", - "cancelled", - "rejected", - "transport-interrupted", - ]), - callID: Schema.optional(Schema.String), - message: Schema.String, -}) {} - -export interface Invocation { - /** Producer invocation ID, stable across controller reconnects. */ - readonly id: string - /** Effective provider-visible name, including any flattened namespace. */ - readonly name: string - readonly input: Backend.ToolInvocation["input"] - readonly context: Omit & { readonly callID: string } - readonly progress: (update: Progress) => Effect.Effect - readonly finish: (output: Output) => Effect.Effect - readonly fail: (message: string) => Effect.Effect - /** Completes only when OpenCode cancels before `finish` or `fail`. */ - readonly awaitCancelled: () => Effect.Effect -} - -export interface DynamicControls { - /** Atomically replaces the complete provider-backed dynamic tool set. */ - readonly attach: (params: AttachParams) => Effect.Effect - take(): Effect.Effect - take(callID: string): Effect.Effect -} - -export interface Controls extends StaticControls, DynamicControls {} diff --git a/packages/drive/test/cli/check.test.ts b/packages/drive/test/cli/check.test.ts deleted file mode 100644 index aa76fb7dadf..00000000000 --- a/packages/drive/test/cli/check.test.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { describe, expect, test } from "vitest" -import { effectScriptHint } from "../../src/cli/check.js" - -const promiseDiagnostic = (line: number) => - `/tmp/drive.ts:${line}:10 - error TS2322: Type 'Promise' is not assignable to type 'Effect'.` - -describe("Effect script check hints", () => { - test.each([ - ['defineScript({ run: async ({ ui }) => { await ui.submit("Hello") } })', "run: ({ ui }) =>"], - ["defineScript({ setup: () => Promise.resolve() })", "setup: ({ fs }) => fs.writeFile"], - [ - "defineScript({ run: ({ ui }) => ui.waitFor(() => Promise.resolve(false)) })", - "ui.waitFor((state) => Effect.succeed", - ], - ])("describes the failing Promise callback", (callback, expected) => { - const source = `import { defineScript } from "opencode-drive"\n${callback}\n` - expect(effectScriptHint(source, promiseDiagnostic(2))).toContain(expected) - }) - - test("ignores Promise diagnostics on unrelated source lines", () => { - const source = [ - 'import { defineScript } from "opencode-drive"', - "// run: async () => {}", - "const value: Effect.Effect = Promise.resolve()", - "defineScript({ run: () => Effect.void })", - ].join("\n") - expect(effectScriptHint(source, promiseDiagnostic(3))).toBeUndefined() - }) -}) diff --git a/packages/drive/test/cli/integration.test.ts b/packages/drive/test/cli/integration.test.ts deleted file mode 100644 index 339e47929c2..00000000000 --- a/packages/drive/test/cli/integration.test.ts +++ /dev/null @@ -1,1831 +0,0 @@ -import { afterEach, describe, expect, setDefaultTimeout, test } from "bun:test" -import { mkdir, mkdtemp, readdir, realpath, rename, rm } from "node:fs/promises" -import { tmpdir } from "node:os" -import { basename, dirname, join, resolve } from "node:path" -import { - controlPath, - initializeManifest, - listInstances, - manifestPath, - register, - unregister, - type InstanceManifest, -} from "../../src/instance/registry.js" -import { createResponseSettings, generateResponse } from "../../src/cli/response-generator.js" -import { CommandBatchError, executeCommands } from "../../src/cli/commands.js" -import { splitText } from "../../src/cli/mock-backend.js" -import { resolveSendEndpoint } from "../../src/cli/send.js" -import { sendError, sendResult, startTransportPeer } from "../simulation/transport-peer.js" - -const roots: string[] = [] -const instances: Array<{ root: string; name: string }> = [] - -setDefaultTimeout(30_000) - -afterEach(async () => { - await Promise.all( - instances.splice(0).map(async ({ root, name }) => { - await spawn(["stop", "--name", name], root).exited - }), - ) - await Promise.all(roots.splice(0).map((root) => rm(root, { recursive: true, force: true }))) -}) - -describe("opencode-drive", () => { - test("rejects unsupported optional UI commands without sending them", async () => { - const peers = [ - startTransportPeer( - ({ request, socket }) => { - if (request.method !== "simulation.handshake") return - const params = request.params as { - readonly requiredCapabilities: ReadonlyArray - } - sendResult(socket, request, { - protocolVersion: 1, - role: "ui", - server: { name: "opencode", version: "older" }, - capabilities: params.requiredCapabilities, - }) - }, - { handshake: false }, - ), - startTransportPeer( - ({ request, socket }) => { - if (request.method === "simulation.handshake") sendError(socket, request, "method not found", -32601) - }, - { handshake: false }, - ), - ] - - try { - for (const peer of peers) { - for (const expected of [ - { - command: { operation: "ui.snapshot" as const }, - method: "ui.snapshot", - message: "ui.snapshot is not available on this OpenCode endpoint", - }, - { - command: { - operation: "ui.click" as const, - value: JSON.stringify({ - target: 3, - x: 1, - y: 0, - semantic: { - id: "session.permission.action.once", - instance: "permission-1", - element: 3, - }, - }), - }, - method: "ui.click", - message: "semantic ui.click is not available on this OpenCode endpoint", - }, - ]) { - const result = executeCommands(peer.url, [expected.command]) - await expect(result).rejects.toMatchObject({ - name: "CommandBatchError", - reason: { - name: "SimulationError", - method: expected.method, - message: expected.message, - }, - } satisfies Partial) - } - expect(peer.received.map(({ request }) => request.method)).toEqual([ - "simulation.handshake", - "simulation.handshake", - ]) - } - } finally { - await Promise.all(peers.map((peer) => peer.stop())) - } - }) - - test("requires an explicit name to initialize or start headless", async () => { - const root = await temporary() - for (const command of ["init", "start"]) { - const child = spawn([command], root) - expect(await child.exited).toBe(1) - expect(await new Response(child.stderr).text()).toContain("--name") - } - }) - - test("initializes artifacts and starts from the prepared instance", async () => { - const root = await temporary() - const name = "initialized-test" - const initialized = spawn(["init", "--name", name], root) - const [initStatus, initOutput] = await Promise.all([initialized.exited, new Response(initialized.stdout).text()]) - expect(initStatus).toBe(0) - const artifacts = initOutput.trim() - expect(await Bun.file(join(artifacts, "files", ".opencode", "opencode.jsonc")).exists()).toBe(true) - expect( - Bun.JSONC.parse(await Bun.file(join(artifacts, "files", ".opencode", "opencode.jsonc")).text()), - ).toMatchObject({ - model: "simulation/gpt-sim-model", - snapshots: false, - permissions: [{ action: "*", resource: "*", effect: "allow" }], - providers: { - simulation: { - package: "@opencode-ai/ai/providers/openai/chat", - settings: { apiKey: "sim-key" }, - models: { "gpt-sim-model": { capabilities: { tools: true } } }, - }, - }, - }) - expect(await Bun.file(join(artifacts, "drive", "name")).text()).toBe(`${name}\n`) - expect(await Bun.file(join(root, "registry", `${name}.json`)).json()).toMatchObject({ - name, - artifacts, - status: "initialized", - }) - const repeated = spawn(["init", "--name", name], root) - expect(await repeated.exited).toBe(0) - expect((await new Response(repeated.stdout).text()).trim()).toBe(artifacts) - const listed = spawn(["list"], root) - expect(await listed.exited).toBe(0) - expect(await new Response(listed.stdout).text()).toBe(`${name}: ${join(root, "registry", `${name}.json`)}\n`) - - await Bun.write(join(artifacts, "prepared.txt"), "prepared before start\n") - const started = spawn(["start", "--name", name, "--", process.execPath, fixture("fake-opencode.ts")], root) - const [startStatus, startError] = await Promise.all([started.exited, new Response(started.stderr).text()]) - expect(startStatus).toBe(0) - expect(startError).toContain(`opencode-drive: using artifacts ${artifacts}`) - instances.push({ root, name }) - expect(await Bun.file(join(artifacts, "prepared.txt")).text()).toBe("prepared before start\n") - expect(await Bun.file(join(root, "registry", `${name}.json`)).json()).toMatchObject({ - name, - artifacts, - status: "ready", - }) - }) - - test("starts, drives, prints dir, restarts, and stops a named detached instance", async () => { - const root = await temporary() - const name = "detached-test" - const started = spawn( - ["start", "--name", name, "--record", "--", process.execPath, fixture("fake-opencode.ts")], - root, - ) - const [startStatus, startError] = await Promise.all([started.exited, new Response(started.stderr).text()]) - expect(startStatus).toBe(0) - expect(startError).toContain("opencode-drive: using artifacts ") - const startArtifacts = artifactPath(startError) - expect(startError).toContain( - `opencode-drive: opencode instance logs: ${join(startArtifacts, "logs", "opencode", "log", "opencode*.log")}`, - ) - expect(startError).toContain( - `opencode-drive: current run script logs: ${join(startArtifacts, "logs", "opencode-drive.log")}`, - ) - expect(startError).not.toContain(`opencode-drive: ${name}`) - instances.push({ root, name }) - - const manifest = await Bun.file(join(root, "registry", `${name}.json`)).json() - expect(manifest.visible).toBe(false) - expect(manifest.endpoints.ui).toMatch(/^ws:\/\/127\.0\.0\.1:\d+$/) - expect(manifest.endpoints.backend).toMatch(/^ws:\/\/127\.0\.0\.1:\d+$/) - - const runtimeManifest = join(manifest.artifacts, "drive", `${name}.json`) - const hiddenRuntimeManifest = `${runtimeManifest}.hidden` - await rename(runtimeManifest, hiddenRuntimeManifest) - const batch = spawn( - ["send", "--name", name, "--command.ui.state", "--command.ui.matches", '{"text":"Fake OpenCode"}'], - root, - ) - expect(await batch.exited).toBe(0) - expect(await new Response(batch.stdout).text()).toBe("success\n") - await rename(hiddenRuntimeManifest, runtimeManifest) - - const state = spawn(["send", "--name", name, "--command.ui.state"], root) - expect(await state.exited).toBe(0) - expect(JSON.parse(await new Response(state.stdout).text()).focused.editor).toBe(true) - - const snapshot = spawn(["send", "--name", name, "--command.ui.snapshot"], root) - expect(await snapshot.exited).toBe(0) - expect(JSON.parse(await new Response(snapshot.stdout).text())).toMatchObject({ - format: "opencode-ui-snapshot-v1", - nodes: [{ id: "prompt", role: "textbox", element: 1 }], - }) - - const matches = spawn(["send", "--name", name, "--command.ui.matches", '{"text":"Fake OpenCode"}'], root) - expect(await matches.exited).toBe(0) - expect(await new Response(matches.stdout).text()).toBe("true\n") - - const literal = spawn(["send", "--name", name, "--command.ui.matches", '{"text":"Fake.*OpenCode"}'], root) - expect(await literal.exited).toBe(0) - expect(await new Response(literal.stdout).text()).toBe("false\n") - - const screenshot = spawn(["send", "--name", name, "--command.ui.screenshot"], root) - expect(await screenshot.exited).toBe(0) - const screenshotPath = (await new Response(screenshot.stdout).text()).trim() - expect(dirname(screenshotPath)).toBe(runOutputDirectory(root, manifest.artifacts, 0)) - expect(basename(screenshotPath).startsWith("screenshot-")).toBe(true) - expect(screenshotPath.endsWith(".png")).toBe(true) - - const listed = spawn(["dir", "--name", name], root) - expect(await listed.exited).toBe(0) - expect(await new Response(listed.stdout).text()).toBe(`${manifest.artifacts}\n`) - const driveLog = join(manifest.artifacts, "logs", "opencode-drive.log") - const driveLogText = await Bun.file(driveLog).text() - expect(driveLogText).toContain("INFO ready detached-test") - expect(driveLogText).toContain( - `INFO opencode instance logs: ${join(manifest.artifacts, "logs", "opencode", "log", "opencode*.log")}`, - ) - expect(driveLogText).toContain(`INFO current run script logs: ${driveLog}`) - expect(driveLogText).toContain("INFO ui command ui.state params=undefined") - expect(driveLogText).toContain('INFO ui command ui.matches params={"text":"Fake OpenCode"}') - - const restarted = spawn(["restart", "--name", name], root) - expect(await restarted.exited).toBe(0) - const restartedRecording = (await new Response(restarted.stdout).text()).trim() - expect(dirname(restartedRecording)).toBe(runOutputDirectory(root, manifest.artifacts, 0)) - expect(basename(restartedRecording)).toMatch(/^recording-.*\.mp4$/) - expect(await Bun.file(restartedRecording).exists()).toBe(true) - await waitForLines(join(manifest.artifacts, "launches.txt"), 2) - expect(await spawn(["send", "--name", name, "--command.ui.state"], root).exited).toBe(0) - - const stopped = spawn(["stop", "--name", name], root) - const [stoppedStatus, stoppedOutput, stoppedError] = await Promise.all([ - stopped.exited, - new Response(stopped.stdout).text(), - new Response(stopped.stderr).text(), - ]) - expect(stoppedStatus).toBe(0) - expect(stoppedOutput).toBe("") - const stoppedRecording = stoppedError.match(/Video successfully created: (.+\.mp4)/)?.[1] - expect(stoppedRecording).toBeDefined() - expect(dirname(stoppedRecording!)).toBe(runOutputDirectory(root, manifest.artifacts, 1)) - expect(basename(stoppedRecording!)).toMatch(/^recording-.*\.mp4$/) - expect(await Bun.file(stoppedRecording!).exists()).toBe(true) - expect(stoppedError).toContain("Rendering video: 10%") - expect(stoppedError).toContain("Rendering video: 100%") - expect(stoppedError).toContain(`Video successfully created: ${stoppedRecording}`) - expect(await Bun.file(join(root, "registry", `${name}.json`)).exists()).toBe(false) - expect(await Bun.file(manifest.artifacts).exists()).toBe(false) - instances.splice( - instances.findIndex((item) => item.name === name), - 1, - ) - }, 60_000) - - test("exports a completed timeline after the OpenCode child exits", async () => { - const root = await temporary() - const name = "exited-recording-test" - const started = spawn( - ["start", "--name", name, "--record", "--", process.execPath, fixture("fake-opencode.ts"), "exit-after-attach"], - root, - ) - const [status, stderr] = await Promise.all([started.exited, new Response(started.stderr).text()]) - expect(status, stderr).toBe(0) - const artifacts = stderr.match(/opencode-drive: using artifacts (.+)/)?.[1] - expect(artifacts).toBeDefined() - - const deadline = Date.now() + 10_000 - while (await Bun.file(join(root, "registry", `${name}.json`)).exists()) { - if (Date.now() >= deadline) throw new Error("timed out waiting for exited instance cleanup") - await Bun.sleep(25) - } - const directory = runOutputDirectory(root, artifacts!, 0) - const files = await readdir(directory) - const video = files.find((file) => file.endsWith(".mp4")) - expect(video).toBeDefined() - expect(await Bun.file(join(directory, video!)).size).toBeGreaterThan(500) - }, 15_000) - - test("does not record unless start receives --record", async () => { - const root = await temporary() - const name = "no-recording-test" - expect( - await spawn(["start", "--name", name, "--", process.execPath, fixture("fake-opencode.ts")], root).exited, - ).toBe(0) - instances.push({ root, name }) - const manifest = await Bun.file(join(root, "registry", `${name}.json`)).json() - const drive = await Bun.file(join(manifest.artifacts, "drive", `${name}.json`)).json() - expect(drive.recording).toBeUndefined() - - const stopped = spawn(["stop", "--name", name], root) - expect(await stopped.exited).toBe(0) - expect(await new Response(stopped.stdout).text()).toBe("success\n") - expect(await Bun.file(join(root, "output")).exists()).toBe(false) - expect(await Bun.file(manifest.artifacts).exists()).toBe(false) - instances.pop() - }) - - test("rejects duplicate names", async () => { - const root = await temporary() - const name = "duplicate-test" - const args = ["start", "--name", name, "--", process.execPath, fixture("fake-opencode.ts")] - expect(await spawn(args, root).exited).toBe(0) - instances.push({ root, name }) - const duplicate = spawn(args, root) - const [status, stderr] = await Promise.all([duplicate.exited, new Response(duplicate.stderr).text()]) - expect(status).toBe(1) - expect(stderr).toContain(`drive instance "${name}" is already running`) - }) - - test( - "only the owning detached launcher starts an automatic instance", - () => expectSingleConcurrentStart(false), - 75_000, - ) - - test("only the owning detached launcher starts a prepared instance", () => expectSingleConcurrentStart(true), 75_000) - - test("registers only one concurrent owner for a name", async () => { - const root = await temporary() - await withRegistry(root, async () => { - const results = await Promise.allSettled([ - register(testManifest("racing", process.pid)), - register(testManifest("racing", process.pid)), - ]) - expect(results.filter((result) => result.status === "fulfilled")).toHaveLength(1) - expect(results.filter((result) => result.status === "rejected")).toHaveLength(1) - }) - }) - - test("transfers temporary initialization only to its declared daemon", async () => { - const root = await temporary() - const owner = Bun.spawn([process.execPath, "-e", "await Bun.sleep(60_000)"]) - try { - await withRegistry(root, async () => { - const name = "temporary-owner" - const artifacts = join(root, "artifacts") - await mkdir(join(root, "registry"), { recursive: true }) - await Bun.write( - manifestPath(name), - `${JSON.stringify({ - version: 1, - name, - createdAt: new Date().toISOString(), - cwd: root, - artifacts, - status: "initialized", - temporary: true, - pid: owner.pid, - })}\n`, - ) - const create = async () => { - throw new Error("existing initialization was replaced") - } - - await expect(initializeManifest(name, root, create, { temporary: true })).rejects.toThrow( - `drive instance "${name}" is already starting`, - ) - owner.kill() - await owner.exited - expect( - await initializeManifest(name, root, create, { - temporary: true, - adoptPid: owner.pid, - }), - ).toMatchObject({ pid: process.pid, artifacts }) - await expect(register(testManifest(name, owner.pid))).rejects.toThrow( - `drive instance "${name}" changed ownership`, - ) - }) - } finally { - if (owner.exitCode === null) owner.kill() - await owner.exited - } - }) - - test("preserves prepared artifacts when reclaiming a dead launcher", async () => { - const root = await temporary() - await withRegistry(root, async () => { - const name = "prepared-owner" - const artifacts = join(root, "prepared-artifacts") - await mkdir(join(root, "registry"), { recursive: true }) - await Bun.write( - manifestPath(name), - `${JSON.stringify({ - version: 1, - name, - createdAt: new Date().toISOString(), - cwd: root, - artifacts, - status: "initialized", - pid: 2_000_000_000, - })}\n`, - ) - - const create = async () => { - throw new Error("prepared artifacts were replaced") - } - const released = await initializeManifest(name, root, create) - expect(released).toMatchObject({ artifacts }) - expect("pid" in released).toBe(false) - expect("pid" in (await Bun.file(manifestPath(name)).json())).toBe(false) - - const reclaimed = await initializeManifest(name, root, create, { temporary: true }) - expect(reclaimed).toMatchObject({ pid: process.pid, artifacts }) - expect("temporary" in reclaimed).toBe(false) - }) - }) - - test("registers only one visible instance", async () => { - const root = await temporary() - await withRegistry(root, async () => { - await register({ - ...testManifest("first-visible", process.pid), - visible: true, - }) - await expect( - register({ - ...testManifest("second-visible", process.pid), - visible: true, - }), - ).rejects.toThrow('visible drive instance "first-visible" is already running') - }) - }) - - test("falls back to the default UI endpoint when no visible instance is registered", async () => { - const root = await temporary() - await withRegistry(root, async () => { - await register(testManifest("headless", process.pid)) - expect(await resolveSendEndpoint()).toBe("ws://127.0.0.1:40900") - }) - }) - - test("does not let a stale owner remove its replacement", async () => { - const root = await temporary() - await withRegistry(root, async () => { - const stalePid = 2_000_000_000 - await register(testManifest("replacement", stalePid)) - await register(testManifest("replacement", process.pid)) - await unregister("replacement", stalePid) - expect((await Bun.file(manifestPath("replacement")).json()).pid).toBe(process.pid) - }) - }) - - test("refuses to drive an instance that is still starting", async () => { - const root = await temporary() - await withRegistry(root, () => register(testManifest("starting", process.pid, "starting"))) - const child = spawn(["send", "--name", "starting", "--command.ui.state"], root) - const [status, stderr] = await Promise.all([child.exited, new Response(child.stderr).text()]) - expect(status).toBe(1) - expect(stderr).toContain('drive instance "starting" is still starting') - }) - - test("lists sorted active instances and prunes stale state", async () => { - const root = await temporary() - await withRegistry(root, async () => { - await register(testManifest("zeta", process.pid)) - await register(testManifest("alpha", process.pid)) - await register(testManifest("stale", 2_000_000_000)) - await Bun.write(controlPath("orphan"), "") - expect((await listInstances()).map((manifest) => manifest.name)).toEqual(["alpha", "zeta"]) - expect(await Bun.file(manifestPath("stale")).exists()).toBe(false) - expect(await Bun.file(controlPath("stale")).exists()).toBe(false) - expect(await Bun.file(controlPath("orphan")).exists()).toBe(false) - }) - const listed = spawn(["list"], root) - expect(await listed.exited).toBe(0) - expect(await new Response(listed.stdout).text()).toBe( - `alpha: ${join(root, "registry", "alpha.json")}\nzeta: ${join(root, "registry", "zeta.json")}\n`, - ) - }) - - test("prunes dead transient initialized manifests", async () => { - const root = await temporary() - await withRegistry(root, async () => { - const stalePid = 2_000_000_000 - await Bun.write( - manifestPath("temporary-initialized"), - `${JSON.stringify({ - version: 1, - name: "temporary-initialized", - createdAt: new Date().toISOString(), - cwd: root, - artifacts: join(root, "opencode-drive", "run-temporary"), - status: "initialized", - temporary: true, - pid: stalePid, - })}\n`, - ) - await Bun.write( - manifestPath("visible-12345"), - `${JSON.stringify({ - version: 1, - name: "visible-12345", - createdAt: new Date().toISOString(), - cwd: root, - artifacts: join(root, "opencode-drive", "run-visible"), - status: "initialized", - })}\n`, - ) - - expect(await listInstances()).toEqual([]) - expect(await Bun.file(manifestPath("temporary-initialized")).exists()).toBe(false) - expect(await Bun.file(manifestPath("visible-12345")).exists()).toBe(false) - }) - }) - - test("prunes artifact directories not referenced by active sessions", async () => { - const root = await temporary() - const artifactsRoot = join(root, "opencode-drive") - const active = join(artifactsRoot, "run-active") - const initialized = join(artifactsRoot, "run-initialized") - const visible = join(artifactsRoot, "run-visible") - const stale = join(artifactsRoot, "run-stale") - const unrelated = join(artifactsRoot, "other") - await Promise.all( - [active, initialized, visible, stale, unrelated].map((directory) => - Bun.write(join(directory, "marker.txt"), "artifact\n"), - ), - ) - await withRegistry(root, async () => { - await register({ - ...testManifest("active", process.pid), - artifacts: active, - }) - await Bun.write( - manifestPath("initialized"), - `${JSON.stringify({ - version: 1, - name: "initialized", - createdAt: new Date().toISOString(), - cwd: root, - artifacts: initialized, - status: "initialized", - })}\n`, - ) - await Bun.write( - manifestPath("visible-12345"), - `${JSON.stringify({ - version: 1, - name: "visible-12345", - createdAt: new Date().toISOString(), - cwd: root, - artifacts: visible, - status: "initialized", - })}\n`, - ) - }) - - const child = spawn(["prune"], root) - expect(await child.exited).toBe(0) - expect(await new Response(child.stdout).text()).toBe("2\n") - expect(await Bun.file(join(active, "marker.txt")).exists()).toBe(true) - expect(await Bun.file(join(initialized, "marker.txt")).exists()).toBe(true) - expect(await Bun.file(join(visible, "marker.txt")).exists()).toBe(false) - expect(await Bun.file(join(stale, "marker.txt")).exists()).toBe(false) - expect(await Bun.file(join(unrelated, "marker.txt")).exists()).toBe(true) - }) - - test("prunes one named inactive artifact directory", async () => { - const root = await temporary() - const artifactsRoot = join(root, "opencode-drive") - const active = join(artifactsRoot, "run-active") - const staleA = join(artifactsRoot, "run-stale-a") - const staleB = join(artifactsRoot, "run-stale-b") - await Promise.all( - [active, staleA, staleB].map((directory) => Bun.write(join(directory, "marker.txt"), "artifact\n")), - ) - await Promise.all([ - Bun.write(join(active, "drive", "name"), "active\n"), - Bun.write(join(staleA, "drive", "name"), "stale-a\n"), - Bun.write(join(staleB, "drive", "name"), "stale-b\n"), - ]) - await withRegistry(root, async () => { - await register({ - ...testManifest("active", process.pid), - artifacts: active, - }) - }) - - const child = spawn(["prune", "--name", "stale-a"], root) - expect(await child.exited).toBe(0) - expect(await new Response(child.stdout).text()).toBe("1\n") - expect(await Bun.file(join(active, "marker.txt")).exists()).toBe(true) - expect(await Bun.file(join(staleA, "marker.txt")).exists()).toBe(false) - expect(await Bun.file(join(staleB, "marker.txt")).exists()).toBe(true) - }) - - test("force prunes matching active artifact directories", async () => { - const root = await temporary() - const artifactsRoot = join(root, "opencode-drive") - const active = join(artifactsRoot, "run-active") - const stale = join(artifactsRoot, "run-stale") - await Promise.all([active, stale].map((directory) => Bun.write(join(directory, "marker.txt"), "artifact\n"))) - await Promise.all([ - Bun.write(join(active, "drive", "name"), "active\n"), - Bun.write(join(stale, "drive", "name"), "stale\n"), - ]) - await withRegistry(root, async () => { - await register({ - ...testManifest("active", process.pid), - artifacts: active, - }) - }) - - const child = spawn(["prune", "--name", "active", "--force"], root) - expect(await child.exited).toBe(0) - expect(await new Response(child.stdout).text()).toBe("1\n") - expect(await Bun.file(join(active, "marker.txt")).exists()).toBe(false) - expect(await Bun.file(join(stale, "marker.txt")).exists()).toBe(true) - }) - - test("force prunes all artifact directories", async () => { - const root = await temporary() - const artifactsRoot = join(root, "opencode-drive") - const active = join(artifactsRoot, "run-active") - const initialized = join(artifactsRoot, "run-initialized") - const stale = join(artifactsRoot, "run-stale") - const unrelated = join(artifactsRoot, "other") - await Promise.all( - [active, initialized, stale, unrelated].map((directory) => - Bun.write(join(directory, "marker.txt"), "artifact\n"), - ), - ) - await withRegistry(root, async () => { - await register({ - ...testManifest("active", process.pid), - artifacts: active, - }) - await Bun.write( - manifestPath("initialized"), - `${JSON.stringify({ - version: 1, - name: "initialized", - createdAt: new Date().toISOString(), - cwd: root, - artifacts: initialized, - status: "initialized", - })}\n`, - ) - }) - - const child = spawn(["prune", "--force"], root) - expect(await child.exited).toBe(0) - expect(await new Response(child.stdout).text()).toBe("3\n") - expect(await Bun.file(join(active, "marker.txt")).exists()).toBe(false) - expect(await Bun.file(join(initialized, "marker.txt")).exists()).toBe(false) - expect(await Bun.file(join(stale, "marker.txt")).exists()).toBe(false) - expect(await Bun.file(join(unrelated, "marker.txt")).exists()).toBe(true) - }) - - test("reports optional-name discovery errors", async () => { - const root = await temporary() - const missing = spawn(["dir"], root) - expect(await missing.exited).toBe(1) - expect(await new Response(missing.stderr).text()).toContain("no drive instances are running") - }) - - test("runs multiple named instances concurrently", async () => { - const root = await temporary() - const names = ["first", "second"] as const - const starts = names.map((name) => - spawn(["start", "--name", name, "--", process.execPath, fixture("fake-opencode.ts")], root), - ) - expect(await Promise.all(starts.map((child) => child.exited))).toEqual([0, 0]) - instances.push(...names.map((name) => ({ root, name }))) - const first = await Bun.file(join(root, "registry", "first.json")).json() - const second = await Bun.file(join(root, "registry", "second.json")).json() - expect(first.endpoints.ui).not.toBe(second.endpoints.ui) - expect(await spawn(["send", "--name", "first", "--command.ui.state"], root).exited).toBe(0) - expect(await spawn(["send", "--name", "second", "--command.ui.state"], root).exited).toBe(0) - const screenshots = await Promise.all( - [first, second].map(async (manifest, index) => { - const name = index === 0 ? "first" : "second" - const screenshot = spawn(["send", "--name", name, "--command.ui.screenshot", '{"name":"shared"}'], root) - expect(await screenshot.exited).toBe(0) - return (await new Response(screenshot.stdout).text()).trim() - }), - ) - expect(screenshots).toEqual([ - join(runOutputDirectory(root, first.artifacts, 0), "shared.png"), - join(runOutputDirectory(root, second.artifacts, 0), "shared.png"), - ]) - - const unnamed = spawn(["dir"], root) - const [status, stderr] = await Promise.all([unnamed.exited, new Response(unnamed.stderr).text()]) - expect(status).toBe(1) - expect(stderr).toContain("no visible drive instance is running; pass --name (first, second)") - const listed = spawn(["list"], root) - expect(await listed.exited).toBe(0) - expect(await new Response(listed.stdout).text()).toBe( - `first: ${join(root, "registry", "first.json")}\nsecond: ${join(root, "registry", "second.json")}\n`, - ) - }) - - test("surfaces the owner log when detached startup fails", async () => { - const root = await temporary() - const name = "failed-start" - const child = spawn(["start", "--name", name, "--", process.execPath, "-e", "process.exit(7)"], root) - const [status, stdout, stderr] = await Promise.all([ - child.exited, - new Response(child.stdout).text(), - new Response(child.stderr).text(), - ]) - expect(status).toBe(1) - expect(stderr).toContain(`see ${join(root, "registry", `${name}.log`)}`) - expect(await Bun.file(join(root, "registry", `${name}.log`)).text()).toContain("OpenCode exited with status 7") - }) - - test("makes the visible instance the nameless target", async () => { - const root = await temporary() - const background = "background" - const backgroundStart = spawn( - ["start", "--name", background, "--", process.execPath, fixture("fake-opencode.ts")], - root, - ) - const [backgroundStatus, backgroundError] = await Promise.all([ - backgroundStart.exited, - new Response(backgroundStart.stderr).text(), - ]) - expect(backgroundStatus).toBe(0) - instances.push({ root, name: background }) - - const running = spawn(["start", "--visible", "--", process.execPath, fixture("fake-opencode.ts"), "30000"], root) - const name = `visible-${running.pid}` - const manifest = await waitForManifest(root, name) - instances.push({ root, name: manifest.name }) - expect(manifest.visible).toBe(true) - - const state = spawn(["send", "--command.ui.state"], root) - expect(await state.exited).toBe(0) - expect(JSON.parse(await new Response(state.stdout).text()).focused.editor).toBe(true) - - expect(await spawn(["stop"], root).exited).toBe(0) - instances.pop() - expect(await running.exited).toBe(0) - expect(await spawn(["stop", "--name", background], root).exited).toBe(0) - instances.pop() - const listed = spawn(["list"], root) - expect(await listed.exited).toBe(0) - expect(await new Response(listed.stdout).text()).toBe("\n") - }) - - test("blocks and stops the instance after a script completes", async () => { - const root = await temporary() - const name = "script-test" - const child = spawn( - ["start", "--name", name, "--script", fixture("script.ts"), "--", process.execPath, fixture("fake-opencode.ts")], - root, - ) - const started = Date.now() - const [status, stdout, stderr] = await Promise.all([ - child.exited, - new Response(child.stdout).text(), - new Response(child.stderr).text(), - ]) - expect(status).toBe(0) - expect(Date.now() - started).toBeLessThan(10_000) - const artifacts = artifactPath(stderr) - expect(await Bun.file(join(artifacts, "script-result.json")).json()).toMatchObject({ - frame: { cols: 80, rows: 24 }, - gitWriteError: expect.stringContaining("must not modify Git metadata"), - matches: true, - }) - expect( - Bun.JSONC.parse(await Bun.file(join(artifacts, "files", ".opencode", "opencode.jsonc")).text()), - ).toMatchObject({ - autoupdate: false, - model: "simulation/gpt-sim-model", - providers: { simulation: { models: { "gpt-sim-model": {} } } }, - test: { declared: true, setup: true }, - }) - expect(Bun.JSONC.parse(await Bun.file(join(artifacts, "files", ".opencode", "tui.jsonc")).text())).toEqual({ - test: { declared: true, setup: true }, - }) - const backendEvents = (await Bun.file(join(artifacts, "backend-events.jsonl")).text()) - .trim() - .split("\n") - .map((line) => JSON.parse(line)) - expect( - backendEvents - .filter((event) => event.method === "llm.chunk") - .flatMap((event) => event.params.items) - .filter((item) => item.type === "textDelta") - .map((item) => item.text) - .join(""), - ).toBe("script response") - expect(backendEvents.filter((event) => event.method === "llm.chunk").length).toBeGreaterThan(1) - expect( - backendEvents - .filter((event) => event.method === "llm.chunk") - .flatMap((event) => event.params.items) - .every((item) => item.type !== "textDelta" || item.text.length <= 8), - ).toBe(true) - expect(backendEvents.filter((event) => event.method === "llm.finish")).toEqual([ - { method: "llm.finish", params: { id: "ex_mock", reason: "stop" } }, - ]) - expect(await Bun.file(join(artifacts, "seeded-at-launch.txt")).text()).toBe("export const seeded = true\n") - expect(await Bun.file(join(artifacts, "files", "setup-seeded.txt")).text()).toBe("included in baseline\n") - expect(await Bun.$`git status --porcelain`.cwd(join(artifacts, "files")).text()).toBe("") - expect((await Bun.$`git log -1 --format=%s`.cwd(join(artifacts, "files")).text()).trim()).toBe("Initial commit") - expect(await realpath(await Bun.file(join(artifacts, "child-cwd.txt")).text())).toBe( - await realpath(join(artifacts, "files")), - ) - expect(await Bun.file(join(artifacts, "service-argv.json")).json()).toEqual([ - "serve", - "--service", - "--port", - expect.stringMatching(/^\d+$/), - ]) - const pid = Number(await Bun.file(join(artifacts, "child.pid")).text()) - expect(running(pid)).toBe(false) - expect(await Bun.file(join(root, "registry", `${name}.json`)).exists()).toBe(false) - }) - - test("protects Git metadata in prepared project scripts", async () => { - const root = await temporary() - const name = "prepared-git-script-test" - const initialized = spawn(["init", "--name", name], root) - expect(await initialized.exited).toBe(0) - const artifacts = (await new Response(initialized.stdout).text()).trim() - const files = join(artifacts, "files") - await rm(join(files, ".git"), { recursive: true }) - await Bun.$`git init --quiet --initial-branch=main`.cwd(files) - await Bun.$`git add --all`.cwd(files) - await Bun.$`git -c user.name=Fixture -c user.email=fixture@example.com commit --quiet --message=Prepared`.cwd(files) - const gitConfig = await Bun.file(join(files, ".git", "config")).text() - - const started = spawn(["start", "--name", name, "--script", fixture("prepared-git-script.ts")], root) - expect(await started.exited).toBe(0) - expect(await Bun.file(join(artifacts, "prepared-git-result.json")).json()).toEqual({ - runGitError: expect.stringContaining("must not modify Git metadata"), - setupGitError: expect.stringContaining("must not modify Git metadata"), - }) - expect(await Bun.file(join(files, ".git", "config")).text()).toBe(gitConfig) - expect((await Bun.$`git log -1 --format=%s`.cwd(files).text()).trim()).toBe("Prepared") - }, 10_000) - - test("cleans artifacts after a successful scripted run", async () => { - const root = await temporary() - const name = "script-cleanup-test" - const child = spawn( - ["start", "--name", name, "--script", fixture("script.ts"), "--", process.execPath, fixture("fake-opencode.ts")], - root, - { keepArtifacts: false }, - ) - const [status, stderr] = await Promise.all([child.exited, new Response(child.stderr).text()]) - expect(status).toBe(0) - const artifacts = artifactPath(stderr) - expect(await Bun.file(artifacts).exists()).toBe(false) - expect(await Bun.file(join(root, "registry", `${name}.json`)).exists()).toBe(false) - }) - - test("aborts the script run when a UI wait times out even if the script catches it", async () => { - const root = await temporary() - const name = "caught-timeout-test" - const child = spawn( - [ - "start", - "--name", - name, - "--script", - fixture("caught-timeout-script.ts"), - "--", - process.execPath, - fixture("fake-opencode.ts"), - ], - root, - ) - const [status, stderr] = await Promise.all([child.exited, new Response(child.stderr).text()]) - expect(status).toBe(1) - const artifacts = artifactPath(stderr) - expect(stderr).toContain('timed out waiting for the UI to match "this text never appears"') - expect(await Bun.file(join(root, "registry", `${name}.json`)).exists()).toBe(false) - }, 10_000) - - test("stops the whole run when a script crashes", async () => { - const root = await temporary() - const name = "crashing-script-test" - const child = spawn( - [ - "start", - "--name", - name, - "--script", - fixture("crashing-script.ts"), - "--", - process.execPath, - fixture("fake-opencode.ts"), - ], - root, - ) - const [status, stderr] = await Promise.all([child.exited, new Response(child.stderr).text()]) - expect(status).toBe(1) - const artifacts = artifactPath(stderr) - expect(stderr).toContain("script crashed") - expect(await Bun.file(join(root, "registry", `${name}.json`)).exists()).toBe(false) - const pid = Number(await Bun.file(join(artifacts, "child.pid")).text()) - expect(running(pid)).toBe(false) - const pruned = spawn(["prune", "--name", name], root) - expect(await pruned.exited).toBe(0) - expect(await new Response(pruned.stdout).text()).toBe("1\n") - expect(await Bun.file(artifacts).exists()).toBe(false) - }) - - test("checks a typed script without modifying its source directory", async () => { - const root = await temporary() - const directory = join(root, "scripts") - await mkdir(directory, { recursive: true }) - await Bun.write( - join(directory, "valid.ts"), - 'import { Effect } from "effect"\nimport { defineScript } from "opencode-drive"\nexport default defineScript({ project: { git: true, files: { "src/index.ts": "export {}\\n" } }, run: () => Effect.sleep(1) })\n', - ) - const checked = spawn(["check", join(directory, "valid.ts")], root) - expect(await checked.exited).toBe(0) - expect(await Bun.file(join(directory, "node_modules", "opencode-drive")).exists()).toBe(false) - expect(await Bun.file(join(directory, "node_modules", ".bin", "tsgo")).exists()).toBe(false) - expect(await Bun.file(join(directory, "node_modules")).exists()).toBe(false) - - await Bun.write(join(directory, "invalid.ts"), 'import { Effect } from "effect"\nEffect.sleep("wrong")\n') - const invalid = spawn(["check", join(directory, "invalid.ts")], root) - const invalidError = new Response(invalid.stderr).text() - expect(await invalid.exited).toBe(1) - expect(await invalidError).toContain("is not assignable to parameter of type") - - await Bun.write( - join(directory, "plain-object.ts"), - 'import { Effect } from "effect"\nexport default { run: () => Effect.void }\n', - ) - const plainObject = spawn(["check", join(directory, "plain-object.ts")], root) - expect(await plainObject.exited).toBe(1) - expect(await new Response(plainObject.stderr).text()).toContain("kind") - - await Bun.write( - join(directory, "promise.ts"), - 'import { defineScript } from "opencode-drive"\nexport default defineScript({ run: async ({ ui }) => { await ui.submit("Hello") } })\n', - ) - const promise = spawn(["check", join(directory, "promise.ts")], root) - const promiseError = new Response(promise.stderr).text() - expect(await promise.exited).toBe(1) - expect(await promiseError).toContain("OpenCode Drive scripts are Effect-only") - expect(await promiseError).toContain("Effect.gen(function* ()") - }, 60_000) - - test("runs a script imported from the Drive source checkout", async () => { - const root = await temporary() - const name = "source-script-test" - const child = spawn( - [ - "start", - "--name", - name, - "--script", - fixture("source-script.ts"), - "--", - process.execPath, - fixture("fake-opencode.ts"), - ], - root, - ) - const [status, stderr] = await Promise.all([child.exited, new Response(child.stderr).text()]) - - expect(status).toBe(0) - expect(stderr).not.toContain("Failed to register capture font") - }, 10_000) - - test("creates a type-checkable Effect script without overwriting it", async () => { - const root = await temporary() - const file = join(root, "scripts", "drive.ts") - const created = spawn(["script", "init", file], root) - const [status, stdout] = await Promise.all([created.exited, new Response(created.stdout).text()]) - expect(status).toBe(0) - expect(stdout.trim()).toBe(file) - const source = await Bun.file(file).text() - expect(source).toContain('import { defineScript, Effect, Llm } from "opencode-drive"') - expect(source).toContain('llm.queue(Llm.text("The value is 1."))') - - const checked = spawn(["check", file], root) - expect(await checked.exited).toBe(0) - - const repeated = spawn(["script", "init", file], root) - expect(await repeated.exited).toBe(1) - expect(await new Response(repeated.stderr).text()).toContain("script already exists") - expect(await Bun.file(file).text()).toBe(source) - }, 60_000) - - test("launches all TUIs explicitly for a manual UI script", async () => { - const root = await temporary() - const name = "manual-clients-test" - const child = spawn( - [ - "start", - "--name", - name, - "--script", - fixture("manual-clients-script.ts"), - "--", - process.execPath, - fixture("fake-opencode.ts"), - ], - root, - ) - const stderr = new Response(child.stderr).text() - expect(await child.exited).toBe(0) - const error = await stderr - const artifacts = artifactPath(error) - expect(await Bun.file(join(artifacts, "manual-clients.json")).json()).toEqual({ - apiHealthy: true, - aliceFrame: { cols: 80, rows: 24 }, - aliceMatches: true, - bobMatches: true, - tuiBeforeServer: "launch the script server before launching TUIs", - duplicateServer: "the script server has already been launched", - aliceScreenshot: join(runOutputDirectory(root, artifacts, 0), "alice.png"), - bobScreenshot: join(runOutputDirectory(root, artifacts, 0), "bob.png"), - }) - expect((await Bun.file(join(artifacts, "launches.txt")).text()).trim().split("\n")).toHaveLength(2) - }, 60_000) - - test("controls a statically declared tool from the running script", async () => { - const root = await temporary() - const child = spawn( - [ - "start", - "--name", - "tool-control-script-test", - "--script", - fixture("tool-control-script.ts"), - "--", - process.execPath, - fixture("fake-opencode.ts"), - ], - root, - ) - const stderr = new Response(child.stderr).text() - expect(await child.exited).toBe(0) - const artifacts = artifactPath(await stderr) - const events = (await Bun.file(join(artifacts, "tool-control-events.jsonl")).text()) - .trim() - .split("\n") - .map((line) => JSON.parse(line)) - expect(events).toEqual([ - { type: "progress", result: { output: "script progress\n" } }, - { type: "success", result: { output: "script success\n", exit: 0 } }, - ]) - }, 60_000) - - test("closes the automatic script's primary TUI", async () => { - const root = await temporary() - const child = spawn( - [ - "start", - "--name", - "kill-primary-test", - "--script", - fixture("kill-primary-script.ts"), - "--", - process.execPath, - fixture("fake-opencode.ts"), - ], - root, - ) - const stderr = new Response(child.stderr).text() - expect(await child.exited).toBe(0) - }, 60_000) - - test("kills and relaunches the scripted server and TUIs", async () => { - const root = await temporary() - const child = spawn( - [ - "start", - "--name", - "kill-server-test", - "--script", - fixture("kill-server-script.ts"), - "--", - process.execPath, - fixture("fake-opencode.ts"), - ], - root, - ) - const stderr = new Response(child.stderr).text() - expect(await child.exited).toBe(0) - const error = await stderr - const artifacts = artifactPath(error) - const result = await Bun.file(join(artifacts, "kill-server-result.json")).json() - expect(Number.isInteger(result.firstServer)).toBe(true) - expect(Number.isInteger(result.secondServer)).toBe(true) - expect(result.secondServer).not.toBe(result.firstServer) - expect(dirname(result.aliceRecording)).toBe(runOutputDirectory(root, artifacts, 0)) - expect(basename(result.aliceRecording)).toMatch(/^recording-.*\.mp4$/) - expect(await Bun.file(result.aliceRecording).exists()).toBe(true) - const recordings = [...error.matchAll(/opencode-drive: recording (.+\.mp4)/g)].map((match) => match[1]!) - expect(recordings).toHaveLength(2) - expect(await Promise.all(recordings.map((path) => Bun.file(path).exists()))).toEqual([true, true]) - expect((await Bun.file(join(artifacts, "launches.txt")).text()).trim().split("\n")).toHaveLength(3) - }, 60_000) - - test("retries a launch that fails after LLM attachment", async () => { - const root = await temporary() - const child = spawn( - [ - "start", - "--name", - "failed-launch-retry-test", - "--script", - fixture("failed-launch-retry-script.ts"), - "--", - process.execPath, - fixture("fake-opencode.ts"), - "omit-service-registration", - ], - root, - ) - const stderr = new Response(child.stderr).text() - expect(await child.exited).toBe(0) - const artifacts = artifactPath(await stderr) - const result = await Bun.file(join(artifacts, "failed-launch-retry.json")).json() - expect(Number.isInteger(result.firstPid)).toBe(true) - expect(Number.isInteger(result.secondPid)).toBe(true) - expect(result.secondPid).not.toBe(result.firstPid) - }, 60_000) - - test("rejects the removed callback script shape", async () => { - const root = await temporary() - const child = spawn(["start", "--name", "callback-script-test", "--script", fixture("callback-script.ts")], root) - expect(await child.exited).toBe(1) - expect(await new Response(child.stderr).text()).toContain("script must default-export defineScript(...)") - }) - - test("does not apply primary TUI options to additional TUIs", async () => { - const root = await temporary() - const child = spawn( - [ - "start", - "--name", - "tui-options-test", - "--script", - fixture("tui-options-script.ts"), - "--", - process.execPath, - fixture("fake-opencode.ts"), - ], - root, - ) - const stderr = new Response(child.stderr).text() - expect(await child.exited).toBe(0) - const artifacts = artifactPath(await stderr) - expect(await Bun.file(join(artifacts, "tui-options.json")).json()).toEqual({ - primaryRecording: true, - secondaryRecording: false, - }) - }) - - test.each(["setup", "run"] as const)("rejects a Promise-returning script %s callback", async (callback) => { - const root = await temporary() - const script = join(root, `promise-${callback}-script.js`) - await Bun.write( - script, - callback === "setup" - ? `import { Effect } from "effect"\nimport { defineScript } from "opencode-drive"\nexport default defineScript({ setup: async () => {}, run: () => Effect.void })\n` - : `import { defineScript } from "opencode-drive"\nexport default defineScript({ run: async () => {} })\n`, - ) - const child = spawn( - [ - "start", - "--name", - `promise-${callback}-script-test`, - "--script", - script, - "--", - process.execPath, - fixture("fake-opencode.ts"), - ], - root, - ) - expect(await child.exited).toBe(1) - expect(await new Response(child.stderr).text()).toContain( - callback === "setup" ? "setup must return an Effect" : "script run must return an Effect", - ) - }) - - test("rejects a Promise-returning UI predicate", async () => { - const root = await temporary() - const script = join(root, "promise-predicate-script.js") - await Bun.write( - script, - `import { defineScript } from "opencode-drive"\nexport default defineScript({ run: ({ ui }) => ui.waitFor(() => Promise.resolve(false)) })\n`, - ) - const child = spawn( - [ - "start", - "--name", - "promise-predicate-script-test", - "--script", - script, - "--", - process.execPath, - fixture("fake-opencode.ts"), - ], - root, - ) - expect(await child.exited).toBe(1) - expect(await new Response(child.stderr).text()).toContain("ui.waitFor predicate must return a boolean or Effect") - }) - - test("stops a visible instance after a script completes", async () => { - const root = await temporary() - const name = "visible-script-test" - const child = spawn( - [ - "start", - "--visible", - "--name", - name, - "--script", - fixture("script.ts"), - "--", - process.execPath, - fixture("fake-opencode.ts"), - ], - root, - ) - expect(await child.exited).toBe(0) - expect(await Bun.file(join(root, "registry", `${name}.json`)).exists()).toBe(false) - }) - - test("keeps service and progress output out of a visible client terminal", async () => { - const root = await temporary() - const child = spawn( - [ - "start", - "--visible", - "--name", - "visible-output-test", - "--script", - fixture("script.ts"), - "--", - process.execPath, - fixture("fake-opencode.ts"), - "stdio-markers", - ], - root, - ) - const [status, stdout, stderr] = await Promise.all([ - child.exited, - new Response(child.stdout).text(), - new Response(child.stderr).text(), - ]) - expect(status).toBe(0) - expect(stdout).toContain("fake-client-stdout") - expect(stdout).not.toContain("fake-service-stdout") - expect(stderr).toContain("fake-client-stderr") - expect(stderr).not.toContain("fake-service-stderr") - expect(stderr).not.toContain("script completed") - - const artifacts = artifactPath(stderr) - expect(await Bun.file(join(artifacts, "logs", "service.stdout.log")).text()).toContain("fake-service-stdout") - expect(await Bun.file(join(artifacts, "logs", "service.stderr.log")).text()).toContain("fake-service-stderr") - expect(await Bun.file(join(artifacts, "logs", "opencode-drive.log")).text()).toContain("script completed") - }) - - test.each(["title-requests", "latest-title-requests"])( - "routes %s outside the normal LLM response sequence", - async (mode) => { - const root = await temporary() - const child = spawn( - [ - "start", - "--name", - "title-script-test", - "--script", - fixture("title-script.ts"), - "--", - process.execPath, - fixture("fake-opencode.ts"), - mode, - ], - root, - ) - const stderr = new Response(child.stderr).text() - expect(await child.exited).toBe(0) - const artifacts = artifactPath(await stderr) - const events = (await Bun.file(join(artifacts, "backend-events.jsonl")).text()) - .trim() - .split("\n") - .map((line) => JSON.parse(line)) - const text = (id: string) => - events - .filter((event) => event.method === "llm.chunk" && event.params.id === id) - .flatMap((event) => event.params.items) - .filter((item) => item.type === "textDelta") - .map((item) => item.text) - .join("") - expect(text("ex_title")).toBe("Custom title") - expect(text("ex_mock")).toBe("Normal response") - }, - ) - - test("serves typed LLM chunks and preserves an explicit finish", async () => { - const root = await temporary() - const child = spawn( - [ - "start", - "--name", - "serve-script-test", - "--script", - fixture("serve-script.ts"), - "--", - process.execPath, - fixture("fake-opencode.ts"), - ], - root, - ) - const stderr = new Response(child.stderr).text() - expect(await child.exited).toBe(0) - const artifacts = artifactPath(await stderr) - const events = (await Bun.file(join(artifacts, "backend-events.jsonl")).text()) - .trim() - .split("\n") - .map((line) => JSON.parse(line)) - expect( - events - .filter((event) => event.method === "llm.chunk") - .flatMap((event) => event.params.items) - .filter((item) => item.type === "textDelta") - .map((item) => item.text) - .join(""), - ).toBe("served response") - expect( - events - .filter((event) => event.method === "llm.chunk") - .flatMap((event) => event.params.items) - .filter((item) => item.type === "reasoningDelta") - .map((item) => item.text) - .join(""), - ).toBe("thinking") - expect(events.filter((event) => event.method === "llm.finish")).toEqual([ - { method: "llm.finish", params: { id: "ex_mock", reason: "length" } }, - ]) - }) - - test("waits for a delayed request to accept a sent LLM response", async () => { - const root = await temporary() - const child = spawn( - [ - "start", - "--name", - "delayed-queue-test", - "--script", - fixture("script.ts"), - "--", - process.execPath, - fixture("fake-opencode.ts"), - "10000", - "250", - ], - root, - ) - expect(await child.exited).toBe(0) - }) - - test("restarts an active scripted run", async () => { - const root = await temporary() - const name = "restart-script-test" - const owner = spawn( - [ - "start", - "--name", - name, - "--script", - fixture("restart-script.ts"), - "--", - process.execPath, - fixture("fake-opencode.ts"), - ], - root, - ) - const manifest = await waitForManifest(root, name) - await waitForLines(join(manifest.artifacts, "script-runs.txt"), 1) - - expect(await spawn(["restart", "--name", name], root).exited).toBe(0) - await waitForLines(join(manifest.artifacts, "script-runs.txt"), 2) - const screenshots = (await Bun.file(join(manifest.artifacts, "script-screenshots.txt")).text()).trim().split("\n") - expect(screenshots).toEqual([ - join(runOutputDirectory(root, manifest.artifacts, 0), "restart-shared.png"), - join(runOutputDirectory(root, manifest.artifacts, 1), "restart-shared.png"), - ]) - expect(await spawn(["stop", "--name", name], root).exited).toBe(0) - expect(await owner.exited).toBe(0) - }) - - test("stops a hanging script after the OpenCode child exits", async () => { - const root = await temporary() - const name = "exited-script-test" - const child = spawn( - [ - "start", - "--name", - name, - "--script", - fixture("hanging-script.ts"), - "--", - process.execPath, - fixture("fake-opencode.ts"), - "500", - ], - root, - ) - expect(await child.exited).toBe(0) - expect(await Bun.file(join(root, "registry", `${name}.json`)).exists()).toBe(false) - }) - - test("waits for script cancellation and lifecycle cleanup on interruption", async () => { - const root = await temporary() - const name = "interrupted-script-test" - const script = join(root, "interrupted-script.ts") - const marker = join(root, "script-interrupted") - await Bun.write( - script, - `import { Effect } from "effect"\nimport { defineScript } from "opencode-drive"\nexport default defineScript({ run: ({ artifacts }) => Effect.never.pipe(Effect.ensuring(Effect.promise(async () => { const pid = Number(await Bun.file(artifacts + "/child.pid").text()); let running = true; try { process.kill(pid, 0) } catch { running = false }; await Bun.write(${JSON.stringify(marker)}, running ? "child-running\\n" : "child-stopped\\n") }))) })\n`, - ) - const child = spawn( - ["start", "--daemon", "--name", name, "--script", script, "--", process.execPath, fixture("fake-opencode.ts")], - root, - ) - const manifest = await waitForManifest(root, name) - const openCodePid = Number(await Bun.file(join(manifest.artifacts, "child.pid")).text()) - - process.kill(child.pid, "SIGTERM") - await child.exited - - expect(await Bun.file(marker).text()).toBe("child-running\n") - expect(running(openCodePid)).toBe(false) - expect(await Bun.file(join(root, "registry", `${name}.json`)).exists()).toBe(false) - expect(await Bun.file(join(root, "registry", `${name}.sock`)).exists()).toBe(false) - expect(await Bun.file(join(root, "node_modules", "opencode-drive")).exists()).toBe(false) - expect(await Bun.file(join(root, "node_modules")).exists()).toBe(false) - }) - - test("finalizes recording before interrupted owner teardown completes", async () => { - const root = await temporary() - const name = "interrupted-recording-test" - const child = spawn( - ["start", "--daemon", "--name", name, "--record", "--", process.execPath, fixture("fake-opencode.ts")], - root, - ) - const manifest = await waitForManifest(root, name) - - process.kill(child.pid, "SIGTERM") - await child.exited - - expect((await readdir(runOutputDirectory(root, manifest.artifacts, 0))).some((file) => file.endsWith(".mp4"))).toBe( - true, - ) - expect(await Bun.file(join(root, "registry", `${name}.json`)).exists()).toBe(false) - expect(await Bun.file(join(root, "registry", `${name}.sock`)).exists()).toBe(false) - }, 60_000) - - test("rejects removed LLM commands", async () => { - const root = await temporary() - expect(await spawn(["send", "--command.llm.pending"], root).exited).toBe(1) - }) - - test("generates configured tool calls from offered schemas", () => { - const settings = createResponseSettings() - settings.update({ types: ["tool"], tools: ["read"] }) - const tools = [ - { - type: "function", - function: { - name: "shell", - parameters: { - type: "object", - properties: { command: { type: "string" } }, - required: ["command"], - }, - }, - }, - { - type: "function", - function: { - name: "read", - parameters: { - type: "object", - properties: { - path: { type: "string" }, - offset: { type: "integer" }, - limit: { type: "integer" }, - }, - required: ["path", "offset", "limit"], - }, - }, - }, - ] - const response = generateResponse(settings.current(), { - id: "ex_1", - url: "https://api.openai.com/v1/chat/completions", - body: { tools }, - }) - expect(response.finish).toBe("tool-calls") - expect(response.items).toEqual([ - { - type: "toolCall", - index: 0, - id: expect.stringMatching(/^call_[a-f0-9]{16}$/), - name: "read", - input: { - path: ".opencode/opencode.jsonc", - offset: 1, - limit: 120, - }, - }, - ]) - - settings.update({ types: ["tool"], tools: ["shell", "read"] }) - const multiple = generateResponse(settings.current(), { - id: "ex_2", - url: "https://api.openai.com/v1/chat/completions", - body: { tools }, - }) - expect(multiple.items).toHaveLength(2) - expect(multiple.items).toMatchObject([ - { type: "toolCall", index: 0, name: "shell" }, - { type: "toolCall", index: 1, name: "read" }, - ]) - }) - - test("generates patches and finishes tool continuations with text", () => { - const settings = createResponseSettings() - settings.update({ types: ["diff"], tools: ["apply_patch"] }) - const body = { - tools: [ - { - type: "function", - function: { - name: "apply_patch", - parameters: { - type: "object", - properties: { patchText: { type: "string" } }, - required: ["patchText"], - }, - }, - }, - ], - } - const response = generateResponse(settings.current(), { - id: "ex_1", - url: "https://api.openai.com/v1/chat/completions", - body, - }) - expect(response.finish).toBe("tool-calls") - expect(response.items[0]).toMatchObject({ - type: "toolCall", - name: "apply_patch", - input: { - patchText: expect.stringMatching(/\n-export function greet\([^)]+\)[\s\S]+\n\+export function greet\(/), - }, - }) - - const continuation = generateResponse(settings.current(), { - id: "ex_2", - url: "https://api.openai.com/v1/chat/completions", - body: { ...body, messages: [{ role: "tool", content: "done" }] }, - }) - expect(continuation.finish).toBe("stop") - expect(continuation.items[0]).toMatchObject({ type: "textDelta" }) - - const laterTurn = generateResponse(settings.current(), { - id: "ex_later", - url: "https://api.openai.com/v1/chat/completions", - body: { - ...body, - messages: [ - { role: "tool", content: "done" }, - { role: "assistant", content: "Finished." }, - { role: "user", content: "Make another change." }, - ], - }, - }) - expect(laterTurn.finish).toBe("tool-calls") - - settings.update({ types: ["diff"], tools: ["edit", "write"] }) - const write = generateResponse(settings.current(), { - id: "ex_3", - url: "https://api.openai.com/v1/chat/completions", - body: { - tools: [ - { - type: "function", - function: { - name: "edit", - parameters: { - type: "object", - properties: { - path: { type: "string" }, - oldString: { type: "string" }, - newString: { type: "string" }, - }, - required: ["path", "oldString", "newString"], - }, - }, - }, - { - type: "function", - function: { - name: "write", - parameters: { - type: "object", - properties: { - path: { type: "string" }, - content: { type: "string" }, - }, - required: ["path", "content"], - }, - }, - }, - ], - }, - }) - expect(write.items[0]).toMatchObject({ - type: "toolCall", - name: "write", - input: { - path: "src/garden.js", - content: expect.stringContaining("export function greet"), - }, - }) - }) - - test("splits generated prose into small streaming chunks", () => { - const text = "Mushrooms gather quietly while flowers map the path home." - const chunks = splitText(text) - expect(chunks.join("")).toBe(text) - expect(chunks.length).toBeGreaterThan(1) - expect(chunks.every((chunk) => chunk.trim().split(/\s+/).length <= 3)).toBe(true) - }) -}) - -function spawn(args: ReadonlyArray, root: string, options: { readonly keepArtifacts?: boolean } = {}) { - const env = { - ...process.env, - DRIVE_REGISTRY_DIR: join(root, "registry"), - OPENCODE_DRIVE_MEDIA_DIR: join(root, "output"), - OPENCODE_DRIVE_KEEP_ARTIFACTS: "1", - TMPDIR: root, - } - if (options.keepArtifacts === false) delete env.OPENCODE_DRIVE_KEEP_ARTIFACTS - return Bun.spawn([process.execPath, resolve("src/cli/index.ts"), ...args], { - cwd: resolve("."), - env, - stdin: "ignore", - stdout: "pipe", - stderr: "pipe", - }) -} - -function fixture(name: string) { - return resolve("test", "fixtures", name) -} - -function runOutputDirectory(root: string, artifacts: string, generation: number) { - return join(root, "output", basename(artifacts), `generation-${generation}`) -} - -async function temporary() { - const root = await mkdtemp(join(tmpdir(), "opencode-drive-test-")) - roots.push(root) - return root -} - -async function waitForLines(file: string, count: number) { - const deadline = Date.now() + 10_000 - while (Date.now() < deadline) { - const lines = await Bun.file(file) - .text() - .then((text) => text.trim().split("\n").length) - .catch(() => 0) - if (lines >= count) return - await Bun.sleep(25) - } - throw new Error(`timed out waiting for ${count} lines in ${file}`) -} - -async function waitForManifest(root: string, name: string, timeout = 10_000) { - const file = join(root, "registry", `${name}.json`) - const deadline = Date.now() + timeout - while (Date.now() < deadline) { - const manifest = await Bun.file(file) - .json() - .catch(() => undefined) - if (manifest?.status === "ready") return manifest as InstanceManifest - await Bun.sleep(25) - } - throw new Error(`timed out waiting for ${file}`) -} - -async function waitForLauncher(child: ReturnType, stderr: Promise) { - let timer: ReturnType | undefined - const timeout = new Promise<"timeout">((resolve) => { - timer = setTimeout(() => resolve("timeout"), 10_000) - }) - try { - const status = await Promise.race([child.exited, timeout]) - if (status !== "timeout") return status - if (child.exitCode === null) child.kill() - await child.exited - throw new Error(`launcher ${child.pid} did not exit after ownership resolved: ${await stderr}`) - } finally { - if (timer !== undefined) clearTimeout(timer) - } -} - -async function expectSingleConcurrentStart(prepared: boolean) { - const root = await temporary() - const name = `concurrent-start-${prepared ? "prepared" : "automatic"}` - if (prepared) expect(await spawn(["init", "--name", name], root).exited).toBe(0) - const args = ["start", "--name", name, "--", process.execPath, fixture("fake-opencode.ts")] - const children = [spawn(args, root), spawn(args, root)] - const stderr = children.map((child) => new Response(child.stderr).text()) - let managed = false - try { - const manifest = await waitForManifest(root, name, 65_000) - instances.push({ root, name }) - managed = true - const statuses = await Promise.all(children.map((child, index) => waitForLauncher(child, stderr[index]!))) - const errors = await Promise.all(stderr) - expect(statuses.sort()).toEqual([0, 1]) - expect(errors.filter((error) => error.includes("is already starting"))).toHaveLength(1) - expect(errors.some((error) => error.includes("detached instance exited"))).toBe(false) - expect(manifest.pid).toBeGreaterThan(0) - } finally { - await Promise.all( - children.map(async (child) => { - if (child.exitCode === null) child.kill() - await child.exited - }), - ) - await Promise.allSettled(stderr) - if (!managed) await terminateUnmanagedInstance(root, name) - } -} - -async function terminateUnmanagedInstance(root: string, name: string) { - const manifest: unknown = await Bun.file(join(root, "registry", `${name}.json`)) - .json() - .catch(() => undefined) - if (typeof manifest !== "object" || manifest === null || !("pid" in manifest) || typeof manifest.pid !== "number") - return - for (const signal of ["SIGTERM", "SIGKILL"] as const) { - if (!running(manifest.pid)) return - try { - process.kill(manifest.pid, signal) - } catch (error) { - if (!running(manifest.pid)) return - throw error - } - const deadline = Date.now() + 2_000 - while (running(manifest.pid) && Date.now() < deadline) await Bun.sleep(25) - } - if (running(manifest.pid)) throw new Error(`failed to terminate drive owner ${manifest.pid}`) -} - -async function waitForMissing(file: string) { - const deadline = Date.now() + 10_000 - while (Date.now() < deadline) { - if (!(await Bun.file(file).exists())) return - await Bun.sleep(25) - } - throw new Error(`timed out waiting for ${file} removal`) -} - -function artifactPath(stderr: string) { - const line = stderr.split("\n").find((value) => value.startsWith("opencode-drive: using artifacts ")) - if (!line) throw new Error("artifact path was not reported") - return line.slice("opencode-drive: using artifacts ".length) -} - -function running(pid: number) { - try { - process.kill(pid, 0) - return true - } catch { - return false - } -} - -function testManifest(name: string, pid: number, status: "starting" | "ready" = "ready") { - return { - version: 1 as const, - name, - pid, - startedAt: new Date().toISOString(), - cwd: process.cwd(), - artifacts: join(tmpdir(), name), - visible: false, - status, - endpoints: { - ui: "ws://127.0.0.1:1", - backend: "ws://127.0.0.1:2", - }, - control: join(tmpdir(), `${name}.sock`), - } -} - -async function withRegistry(root: string, task: () => Promise) { - const previous = process.env.DRIVE_REGISTRY_DIR - process.env.DRIVE_REGISTRY_DIR = join(root, "registry") - try { - return await task() - } finally { - if (previous === undefined) delete process.env.DRIVE_REGISTRY_DIR - else process.env.DRIVE_REGISTRY_DIR = previous - } -} diff --git a/packages/drive/test/cli/parse.test.ts b/packages/drive/test/cli/parse.test.ts deleted file mode 100644 index 36d55d534dc..00000000000 --- a/packages/drive/test/cli/parse.test.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { describe, expect, test } from "vitest" -import { extractCommands } from "../../src/cli/parse.js" - -describe("drive CLI parser", () => { - test("preserves namespaced command order", () => { - expect( - extractCommands([ - "send", - "--command.ui.type", - '{"text":"hello"}', - "--command.ui.screenshot", - '{"name":"home"}', - "--command.ui.screenshot", - "--command.ui.matches", - '{"text":"hello"}', - "--command.ui.state", - ]), - ).toEqual({ - args: ["send"], - app: [], - commands: [ - { operation: "ui.type", value: '{"text":"hello"}' }, - { operation: "ui.screenshot", value: '{"name":"home"}' }, - { operation: "ui.screenshot" }, - { operation: "ui.matches", value: '{"text":"hello"}' }, - { operation: "ui.state" }, - ], - }) - }) - - test("keeps the custom OpenCode argv intact", () => { - expect(extractCommands(["start", "--", "bun", "app.ts", "--standalone", "--help"])).toEqual({ - args: ["start"], - app: ["bun", "app.ts", "--standalone", "--help"], - commands: [], - }) - }) - - test("rejects unknown namespaced commands", () => { - expect(() => extractCommands(["send", "--command.unknown"])).toThrow("unknown drive command") - }) - - test("rejects LLM commands", () => { - expect(() => extractCommands(["send", "--command.llm.pending"])).toThrow("unknown drive command") - }) -}) diff --git a/packages/drive/test/cli/run.test.ts b/packages/drive/test/cli/run.test.ts deleted file mode 100644 index 9b4981470c4..00000000000 --- a/packages/drive/test/cli/run.test.ts +++ /dev/null @@ -1,100 +0,0 @@ -import { afterEach, describe, expect, test } from "vitest" -import { mkdtemp, rm } from "node:fs/promises" -import { tmpdir } from "node:os" -import { join, resolve } from "node:path" - -const roots: string[] = [] - -afterEach(async () => { - await Promise.all(roots.splice(0).map((root) => rm(root, { recursive: true, force: true }))) -}) - -describe("opencode-drive run", () => { - test("type-checks and executes a default-exported Effect", async () => { - const root = await temporary() - const marker = join(root, "executed.txt") - await Bun.write(join(root, "helper.ts"), 'export const value = "yes\\n"\n') - const program = await writeProgram( - root, - "valid.ts", - `import { Effect } from "effect"\nimport { OpenCodeDriver } from "opencode-drive"\nimport { value } from "./helper.ts"\nvoid OpenCodeDriver\nexport default Effect.promise(() => Bun.write(${JSON.stringify(marker)}, value))\n`, - ) - - const child = spawn(["run", program]) - const [status, stdout, stderr] = await Promise.all([ - child.exited, - new Response(child.stdout).text(), - new Response(child.stderr).text(), - ]) - expect(status, `${stdout}\n${stderr}`).toBe(0) - expect(await Bun.file(marker).text()).toBe("yes\n") - expect(await Bun.file(join(root, "node_modules")).exists()).toBe(false) - }, 30_000) - - test("rejects a program with unprovided requirements before importing it", async () => { - const root = await temporary() - const marker = join(root, "imported.txt") - const program = await writeProgram( - root, - "requirements.ts", - `import type { Effect } from "effect"\nawait Bun.write(${JSON.stringify(marker)}, "imported\\n")\ndeclare const program: Effect.Effect\nexport default program\n`, - ) - - const child = spawn(["run", program]) - const [status, stdout] = await Promise.all([child.exited, new Response(child.stdout).text()]) - expect(status).toBe(1) - expect(stdout).toContain("not assignable") - expect(await Bun.file(marker).exists()).toBe(false) - expect(await Bun.file(join(root, "node_modules")).exists()).toBe(false) - }, 30_000) - - test("validates the imported value at runtime", async () => { - const root = await temporary() - const program = await writeProgram( - root, - "invalid.js", - 'const program = /** @type {import("effect/Effect").Effect} */ ({})\nexport default program\n', - ) - - const child = spawn(["run", program]) - const [status, stdout, stderr] = await Promise.all([ - child.exited, - new Response(child.stdout).text(), - new Response(child.stderr).text(), - ]) - expect(status).toBe(1) - expect(`${stdout}\n${stderr}`).toContain("program must default-export a fully provided Effect") - expect(await Bun.file(join(root, "node_modules")).exists()).toBe(false) - }, 30_000) - - test.each([ - [["run", "program.ts", "--command.ui.state"], "command flags"], - [["run", "program.ts", "--", "argument"], "arguments after --"], - ] as const)("rejects unsupported invocation %#", async (args, message) => { - const child = spawn(args) - const [status, stderr] = await Promise.all([child.exited, new Response(child.stderr).text()]) - expect(status).toBe(1) - expect(stderr).toContain(message) - }) -}) - -function spawn(args: ReadonlyArray) { - return Bun.spawn([process.execPath, resolve("src/cli/index.ts"), ...args], { - cwd: resolve("."), - stdin: "ignore", - stdout: "pipe", - stderr: "pipe", - }) -} - -async function temporary() { - const root = await mkdtemp(join(tmpdir(), "opencode-drive-run-test-")) - roots.push(root) - return root -} - -async function writeProgram(root: string, name: string, contents: string) { - const file = join(root, name) - await Bun.write(file, contents) - return file -} diff --git a/packages/drive/test/driver/index.test.ts b/packages/drive/test/driver/index.test.ts deleted file mode 100644 index 59d8c00ce40..00000000000 --- a/packages/drive/test/driver/index.test.ts +++ /dev/null @@ -1,619 +0,0 @@ -import { readFile, readdir, rm, stat } from "node:fs/promises" -import { resolve } from "node:path" -import { expect, it } from "@effect/vitest" -import { Cause, Effect, Exit } from "effect" -import { Llm, OpenCodeDriver } from "../../src/index.js" - -const fakeOpenCode = [process.execPath, resolve("test", "fixtures", "fake-opencode.ts")] - -it.live("runs and settles a complete scoped driver", () => - Effect.gen(function* () { - const result = yield* OpenCodeDriver.use( - { - keepArtifacts: true, - project: { - git: true, - files: { - "src/seeded.ts": "export const seeded = true\n", - }, - }, - config: { - autoupdate: false, - nested: { declared: true, winner: "declared" }, - items: ["declared"], - }, - tuiConfig: { theme: { declared: true } }, - setup: ({ config, tuiConfig }) => - Effect.sync(() => { - config.nested = { - ...(config.nested as Record), - winner: "setup", - } - tuiConfig.theme = { - ...(tuiConfig.theme as Record), - setup: true, - } - }), - tui: { - recording: true, - viewport: { cols: 96, rows: 32 }, - }, - opencode: { command: fakeOpenCode }, - }, - (driver) => - Effect.gen(function* () { - expect(yield* driver.opencode.health.get()).toMatchObject({ - healthy: true, - version: "test", - }) - expect(yield* driver.opencode.server.get()).toEqual({ urls: [] }) - yield* driver.llm.queue(Llm.text("library response", { delay: 0, chunkSize: 100 })) - yield* driver.ui.submit("hello from library") - yield* driver.ui.waitFor("hello from library") - const secondary = yield* driver.tuis.launch({ - viewport: { cols: 120, rows: 40 }, - }) - yield* secondary.ui.submit("hello from secondary") - yield* secondary.ui.waitFor("hello from secondary") - return { - artifacts: driver.artifacts, - recording: driver.tui.recording?.path, - } - }), - ) - - yield* Effect.addFinalizer(() => - Effect.tryPromise({ - try: async () => { - await rm(result.artifacts, { recursive: true, force: true }) - if (result.recording !== undefined) await rm(result.recording, { force: true }) - }, - catch: () => undefined, - }).pipe(Effect.ignore), - ) - - expect(result.recording).toBeDefined() - expect(yield* Effect.promise(() => readFile(`${result.artifacts}/seeded-at-launch.txt`, "utf8"))).toBe( - "export const seeded = true\n", - ) - expect( - yield* Effect.promise(() => - readFile(`${result.artifacts}/files/.opencode/opencode.jsonc`, "utf8").then(JSON.parse), - ), - ).toMatchObject({ - autoupdate: false, - nested: { declared: true, winner: "setup" }, - items: ["declared"], - }) - expect( - yield* Effect.promise(() => readFile(`${result.artifacts}/files/.opencode/tui.jsonc`, "utf8").then(JSON.parse)), - ).toEqual({ theme: { declared: true, setup: true } }) - expect(yield* Effect.promise(() => readFile(`${result.artifacts}/backend-events.jsonl`, "utf8"))).toContain( - "library response", - ) - expect( - result.recording === undefined - ? false - : yield* Effect.promise(() => - stat(result.recording).then( - () => true, - () => false, - ), - ), - ).toBe(true) - - for (const file of ["service.pid", "child.pid"]) { - const pid = Number(yield* Effect.promise(() => readFile(`${result.artifacts}/${file}`, "utf8"))) - expect(isRunning(pid)).toBe(false) - } - }), -) - -it.live("rejects a setup callback that does not return an Effect", () => - Effect.gen(function* () { - const failure = yield* OpenCodeDriver.use( - { - setup() {}, - opencode: { command: fakeOpenCode }, - }, - () => Effect.void, - ).pipe(Effect.flip) - - expect(failure).toMatchObject({ - _tag: "OpenCodeDriverError", - operation: "project.prepare", - message: "setup must return an Effect", - }) - }), -) - -it.live("rejects recording for a visible TUI", () => - Effect.gen(function* () { - const failure = yield* OpenCodeDriver.make({ - tui: { recording: true }, - opencode: { command: fakeOpenCode, visible: true }, - }).pipe(Effect.scoped, Effect.flip) - - expect(failure).toMatchObject({ - _tag: "OpenCodeDriverError", - operation: "tui.launch", - message: "recording requires a headless OpenCode TUI", - }) - }), -) - -it.live("supports explicit terminal settlement with make", () => - Effect.gen(function* () { - let artifacts = "" - yield* Effect.scoped( - Effect.gen(function* () { - const driver = yield* OpenCodeDriver.make({ - opencode: { command: fakeOpenCode }, - }) - artifacts = driver.artifacts - yield* driver.llm.queue(Llm.text("explicit settlement", { delay: 0, chunkSize: 100 })) - const settlement = yield* driver.settle() - expect(settlement).toMatchObject({ - artifacts: driver.artifacts, - retained: false, - compatibility: [ - { _tag: "Negotiated", role: "backend", protocolVersion: 1 }, - { _tag: "Negotiated", role: "ui", protocolVersion: 1 }, - ], - recordings: [], - }) - const error = yield* driver.tuis.launch().pipe(Effect.flip) - expect(error).toMatchObject({ - _tag: "OpenCodeDriverError", - operation: "tui.launch", - }) - }), - ) - expect( - yield* Effect.promise(() => - stat(artifacts).then( - () => true, - () => false, - ), - ), - ).toBe(false) - }), -) - -it.live("rolls back a failed initial tool connection", () => - Effect.gen(function* () { - const failure = yield* OpenCodeDriver.make({ - opencode: { command: [...fakeOpenCode, "reject-tool-handshake"] }, - }).pipe( - Effect.scoped, - Effect.timeoutOrElse({ - duration: 10_000, - orElse: () => Effect.dieMessage("failed tool connection did not roll back"), - }), - Effect.flip, - ) - expect(failure).toMatchObject({ - _tag: "OpenCodeDriverError", - operation: "tools.connect", - }) - }), -) - -it.live("injects declared tool handlers for library drivers", () => - Effect.gen(function* () { - const artifacts = yield* OpenCodeDriver.use( - { - keepArtifacts: true, - opencode: { command: fakeOpenCode }, - tools(tools) { - tools.handle("shell", () => Effect.succeed({ output: "controlled\n" })) - }, - }, - (driver) => Effect.succeed(driver.artifacts), - ) - yield* Effect.addFinalizer(() => Effect.promise(() => rm(artifacts, { recursive: true, force: true }))) - const config = yield* Effect.promise(() => - readFile(`${artifacts}/files/.opencode/opencode.jsonc`, "utf8").then(JSON.parse), - ) - expect(config.plugins).toEqual([ - expect.objectContaining({ - package: expect.stringMatching(/\/src\/tool\/plugin\.js$/), - options: expect.objectContaining({ tools: ["shell"] }), - }), - ]) - }), -) - -it.live("exposes runtime controls for tools declared by name", () => - Effect.gen(function* () { - const artifacts = yield* OpenCodeDriver.use( - { - keepArtifacts: true, - opencode: { command: fakeOpenCode }, - tools: ["shell"], - }, - (driver) => - Effect.gen(function* () { - yield* driver.tools.control("shell") - return driver.artifacts - }), - ) - yield* Effect.addFinalizer(() => Effect.promise(() => rm(artifacts, { recursive: true, force: true }))) - const config = yield* Effect.promise(() => - readFile(`${artifacts}/files/.opencode/opencode.jsonc`, "utf8").then(JSON.parse), - ) - expect(config.plugins).toEqual([ - expect.objectContaining({ - package: expect.stringMatching(/\/src\/tool\/plugin\.js$/), - options: expect.objectContaining({ tools: ["shell"] }), - }), - ]) - }), -) - -it.live("controls arbitrary provider-backed tools through the runtime lifecycle", () => - Effect.gen(function* () { - const artifacts = yield* OpenCodeDriver.use( - { - keepArtifacts: true, - opencode: { - command: [...fakeOpenCode, "dynamic-tool", "reconnect-tool"], - }, - }, - (driver) => - Effect.gen(function* () { - yield* driver.tools.attach({ - tools: [ - { - name: "lookup", - description: "Look up a value", - inputSchema: { - type: "object", - properties: { query: { type: "string" } }, - required: ["query"], - }, - outputSchema: { - type: "object", - properties: { answer: { type: "number" } }, - required: ["answer"], - }, - options: { codemode: false }, - }, - ], - }) - const call = yield* driver.tools.take("call_lookup") - expect(call).toMatchObject({ - name: "lookup", - input: { query: "meaning" }, - context: { sessionID: "ses_dynamic", callID: "call_lookup" }, - }) - yield* call.progress({ - structured: { phase: "searching" }, - content: [{ type: "text", text: "Searching" }], - }) - yield* call.finish({ - structured: { answer: 42 }, - content: [{ type: "text", text: "42" }], - }) - return driver.artifacts - }), - ) - yield* Effect.addFinalizer(() => Effect.promise(() => rm(artifacts, { recursive: true, force: true }))) - const events = (yield* Effect.promise(() => readFile(`${artifacts}/tool-events.jsonl`, "utf8"))) - .trim() - .split("\n") - .map((line) => JSON.parse(line)) - expect(events).toEqual([ - expect.objectContaining({ method: "tool.attach" }), - expect.objectContaining({ method: "tool.attach" }), - { - method: "tool.update", - params: { - id: "tool_1", - sequence: 0, - update: { - structured: { phase: "searching" }, - content: [{ type: "text", text: "Searching" }], - }, - }, - }, - { - method: "tool.finish", - params: { - id: "tool_1", - output: { - structured: { answer: 42 }, - content: [{ type: "text", text: "42" }], - }, - }, - }, - { - method: "tool.attach", - params: { tools: [] }, - }, - ]) - }), -) - -it.live("surfaces a permanent tool reconnect failure", () => - Effect.gen(function* () { - let artifacts = "" - const result = yield* Effect.exit( - OpenCodeDriver.use( - { - keepArtifacts: true, - opencode: { - command: [...fakeOpenCode, "dynamic-tool", "reconnect-tool", "reject-tool-reconnect"], - }, - }, - (driver) => - Effect.gen(function* () { - artifacts = driver.artifacts - yield* driver.tools.attach({ - tools: [ - { - name: "lookup", - description: "Look up a value", - inputSchema: { type: "object" }, - options: { codemode: false }, - }, - ], - }) - return yield* Effect.never - }), - ).pipe( - Effect.timeoutOrElse({ - duration: 10_000, - orElse: () => Effect.dieMessage("permanent tool reconnect failure was not observed"), - }), - ), - ) - yield* Effect.addFinalizer(() => - artifacts === "" ? Effect.void : Effect.promise(() => rm(artifacts, { recursive: true, force: true })), - ) - if (Exit.isSuccess(result)) return yield* Effect.dieMessage("driver unexpectedly succeeded") - expect(result.cause.reasons.filter(Cause.isFailReason).map((reason) => reason.error)).toContainEqual( - expect.objectContaining({ - _tag: "OpenCodeDriverError", - operation: "tools.connect", - }), - ) - }), -) - -it.live("returns structured evidence from the safe lifecycle boundary", () => - Effect.gen(function* () { - const result = yield* OpenCodeDriver.useReport( - { - keepArtifacts: true, - opencode: { command: fakeOpenCode }, - }, - ({ artifacts }) => Effect.succeed(artifacts), - ) - - expect(result.value).toBe(result.report.artifacts) - expect(result.report).toMatchObject({ - artifacts: result.value, - retained: true, - recordings: [], - compatibility: [ - { _tag: "Negotiated", role: "backend", protocolVersion: 1 }, - { _tag: "Negotiated", role: "ui", protocolVersion: 1 }, - ], - }) - yield* Effect.promise(() => rm(result.value, { recursive: true, force: true })) - }), -) - -it.live("settles and exports recordings when the user program fails", () => - Effect.gen(function* () { - let artifacts = "" - let recording = "" - const result = yield* Effect.exit( - OpenCodeDriver.use( - { - keepArtifacts: true, - tui: { recording: true }, - opencode: { command: fakeOpenCode }, - }, - (driver) => { - artifacts = driver.artifacts - recording = driver.tui.recording?.path ?? "" - return Effect.fail("user program failed") - }, - ), - ) - - yield* Effect.addFinalizer(() => - Effect.promise(async () => { - await rm(artifacts, { recursive: true, force: true }) - await rm(recording, { force: true }) - }), - ) - - expect(Exit.isFailure(result)).toBe(true) - expect(yield* exists(recording)).toBe(true) - for (const file of ["service.pid", "child.pid"]) { - const pid = Number(yield* Effect.promise(() => readFile(`${artifacts}/${file}`, "utf8"))) - expect(isRunning(pid)).toBe(false) - } - }), -) - -it.live("preserves user and settlement failures", () => - Effect.gen(function* () { - let artifacts = "" - const result = yield* Effect.exit( - OpenCodeDriver.use( - { - keepArtifacts: true, - tui: { recording: true }, - opencode: { command: fakeOpenCode }, - }, - (driver) => - Effect.gen(function* () { - artifacts = driver.artifacts - yield* Effect.promise(async () => { - const directory = `${driver.artifacts}/drive` - for (const file of await readdir(directory)) { - if (!file.endsWith(".json")) continue - const manifest: unknown = JSON.parse(await readFile(`${directory}/${file}`, "utf8")) - if ( - typeof manifest === "object" && - manifest !== null && - "recording" in manifest && - typeof manifest.recording === "object" && - manifest.recording !== null && - "timeline" in manifest.recording && - typeof manifest.recording.timeline === "string" - ) - await rm(manifest.recording.timeline, { force: true }) - } - }) - return yield* Effect.fail("user program failed") - }), - ), - ) - - yield* Effect.addFinalizer(() => Effect.promise(() => rm(artifacts, { recursive: true, force: true }))) - if (Exit.isSuccess(result)) return yield* Effect.dieMessage("driver unexpectedly succeeded") - const failures = result.cause.reasons.filter(Cause.isFailReason).map((reason) => reason.error) - expect(failures).toContain("user program failed") - expect(failures).toContainEqual( - expect.objectContaining({ - _tag: "OpenCodeDriverError", - operation: "recording.export", - }), - ) - }), -) - -it.live("interrupts use when the backend disconnects", () => - Effect.gen(function* () { - let artifacts = "" - const result = yield* Effect.exit( - OpenCodeDriver.use( - { - keepArtifacts: true, - opencode: { command: fakeOpenCode }, - }, - (driver) => - Effect.gen(function* () { - artifacts = driver.artifacts - yield* driver.tools.attach({ - tools: [ - { - name: "lookup", - description: "Look up a value", - inputSchema: { type: "object" }, - options: { codemode: false }, - }, - ], - }) - const pid = Number(yield* Effect.promise(() => readFile(`${artifacts}/service.pid`, "utf8"))) - process.kill(pid, "SIGKILL") - return yield* Effect.never - }), - ).pipe( - Effect.timeoutOrElse({ - duration: 10_000, - orElse: () => Effect.dieMessage("backend disconnect was not observed"), - }), - ), - ) - - yield* Effect.addFinalizer(() => Effect.promise(() => rm(artifacts, { recursive: true, force: true }))) - if (Exit.isSuccess(result)) return yield* Effect.dieMessage("driver unexpectedly succeeded") - expect(Cause.squash(result.cause)).toMatchObject({ - _tag: "LlmControllerError", - operation: "backend", - }) - }), -) - -it.live("closes TUIs and exports recordings after LLM settlement fails", () => - Effect.gen(function* () { - let artifacts = "" - let recording = "" - yield* Effect.scoped( - Effect.gen(function* () { - const driver = yield* OpenCodeDriver.make({ - keepArtifacts: true, - tui: { recording: true }, - opencode: { command: fakeOpenCode }, - }) - artifacts = driver.artifacts - recording = driver.tui.recording?.path ?? "" - yield* driver.llm.queue(Llm.finish(), Llm.text("too late", { delay: 0 })) - yield* driver.ui.submit("trigger invalid response") - const failure = yield* driver.settle().pipe(Effect.flip) - expect(failure).toMatchObject({ - _tag: "LlmControllerError", - operation: "respond", - }) - expect(yield* exists(recording)).toBe(true) - expect((yield* driver.tuis.launch().pipe(Effect.flip)).operation).toBe("tui.launch") - }), - ) - - yield* Effect.addFinalizer(() => - Effect.promise(async () => { - await rm(artifacts, { recursive: true, force: true }) - await rm(recording, { force: true }) - }), - ) - for (const file of ["service.pid", "child.pid"]) { - const pid = Number(yield* Effect.promise(() => readFile(`${artifacts}/${file}`, "utf8"))) - expect(isRunning(pid)).toBe(false) - } - }), -) - -it.live("force kills unresponsive processes and preserves their logs", () => - Effect.gen(function* () { - const started = Date.now() - const artifacts = yield* OpenCodeDriver.use( - { - keepArtifacts: true, - opencode: { - command: [...fakeOpenCode, "ignore-sigterm", "write-stdio"], - }, - }, - (driver) => - driver.llm.queue(Llm.text("shutdown response", { delay: 0, chunkSize: 100 })).pipe(Effect.as(driver.artifacts)), - ) - const elapsed = Date.now() - started - - yield* Effect.addFinalizer(() => Effect.promise(() => rm(artifacts, { recursive: true, force: true }))) - - expect(yield* Effect.promise(() => readFile(`${artifacts}/logs/service.stdout.log`, "utf8"))).toContain( - "fake opencode service stdout", - ) - expect(yield* Effect.promise(() => readFile(`${artifacts}/logs/tui-0.stderr.log`, "utf8"))).toContain( - "fake opencode client stderr", - ) - expect(elapsed).toBeGreaterThanOrEqual(900) - expect(elapsed).toBeLessThan(10_000) - for (const file of ["service.pid", "child.pid"]) { - const pid = Number(yield* Effect.promise(() => readFile(`${artifacts}/${file}`, "utf8"))) - expect(isRunning(pid)).toBe(false) - } - }), -) - -const exists = (path: string) => - Effect.promise(() => - stat(path).then( - () => true, - () => false, - ), - ) - -function isRunning(pid: number) { - try { - process.kill(pid, 0) - return true - } catch { - return false - } -} diff --git a/packages/drive/test/driver/llm-controller.test.ts b/packages/drive/test/driver/llm-controller.test.ts deleted file mode 100644 index 5301fc1cf9e..00000000000 --- a/packages/drive/test/driver/llm-controller.test.ts +++ /dev/null @@ -1,539 +0,0 @@ -import { describe, expect, it, vi } from "@effect/vitest" -import { Effect, Fiber } from "effect" -import { TestClock } from "effect/testing" -import * as LlmController from "../../src/driver/llm-controller.js" -import * as Llm from "../../src/llm/index.js" -import * as SimulationConnector from "../../src/simulation/connector.js" -import { sendError, sendResult, startTransportPeer } from "../simulation/transport-peer.js" - -const request = { - id: "exchange-1", - url: "https://api.openai.com/v1/responses", - body: { model: "test-model" }, -} - -describe("LlmController", () => { - it.live("preserves response state across backend generations", () => { - const peer = (id: string) => - startTransportPeer(({ request: frame, socket }) => { - if (frame.method === "llm.attach") - socket.send( - JSON.stringify({ - jsonrpc: "2.0", - method: "llm.request", - params: { ...request, id }, - }), - ) - sendResult(socket, frame, frame.method === "llm.attach" ? { attached: true } : { ok: true }) - }) - const first = peer("generation-1") - const second = peer("generation-2") - - return Effect.gen(function* () { - yield* Effect.addFinalizer(() => Effect.promise(() => Promise.all([first.stop(), second.stop()]))) - const llm = yield* LlmController.make() - const firstBackend = yield* SimulationConnector.backend(first.url) - const firstAttachment = yield* llm.attach(firstBackend) - yield* llm.send(Llm.text("first", { delay: 0 })) - yield* firstAttachment.detach() - - const secondBackend = yield* SimulationConnector.backend(second.url) - yield* llm.attach(secondBackend) - yield* llm.send(Llm.text("second", { delay: 0 })) - yield* llm.settle() - - expect(first.received.some(({ request: frame }) => JSON.stringify(frame).includes("first"))).toBe(true) - expect(second.received.some(({ request: frame }) => JSON.stringify(frame).includes("second"))).toBe(true) - }) - }) - - it.live("queues and streams one future response", () => { - const peer = startTransportPeer(({ request: frame, socket }) => { - if (frame.method === "llm.attach") - socket.send( - JSON.stringify({ - jsonrpc: "2.0", - method: "llm.request", - params: request, - }), - ) - sendResult(socket, frame, frame.method === "llm.attach" ? { attached: true } : { ok: true }) - }) - - return Effect.gen(function* () { - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const backend = yield* SimulationConnector.backend(peer.url) - const llm = yield* LlmController.make(backend) - yield* llm.queue(Llm.text("hello", { delay: 0, chunkSize: 100 }), Llm.finish("length")) - yield* llm.settle() - - expect(peer.received.map(({ request }) => request)).toEqual([ - { jsonrpc: "2.0", id: 1, method: "llm.attach" }, - { - jsonrpc: "2.0", - id: 2, - method: "llm.chunk", - params: { - id: "exchange-1", - items: [{ type: "textDelta", text: "hello" }], - }, - }, - { - jsonrpc: "2.0", - id: 3, - method: "llm.finish", - params: { id: "exchange-1", reason: "length" }, - }, - ]) - }) - }) - - it.live("streams tool call input as provider-neutral deltas", () => { - const random = vi.spyOn(Math, "random").mockReturnValue(0.5) - const peer = startTransportPeer(({ request: frame, socket }) => { - if (frame.method === "llm.attach") - socket.send( - JSON.stringify({ - jsonrpc: "2.0", - method: "llm.request", - params: request, - }), - ) - sendResult(socket, frame, frame.method === "llm.attach" ? { attached: true } : { ok: true }) - }) - - return Effect.gen(function* () { - yield* Effect.addFinalizer(() => Effect.sync(() => random.mockRestore())) - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const backend = yield* SimulationConnector.backend(peer.url) - const llm = yield* LlmController.make(backend) - yield* llm.queue( - Llm.toolCall( - { - index: 0, - id: "call_1", - name: "lookup", - input: { query: "weather" }, - }, - { delay: 0, chunkSize: 10 }, - ), - Llm.finish("tool-calls"), - ) - yield* llm.settle() - - const chunks = peer.received.map(({ request: frame }) => frame).filter((frame) => frame.method === "llm.chunk") - expect(chunks).toEqual([ - expect.objectContaining({ - params: { - id: "exchange-1", - items: [ - { - type: "toolInputStart", - index: 0, - id: "call_1", - name: "lookup", - }, - ], - }, - }), - expect.objectContaining({ - params: { - id: "exchange-1", - items: [ - { - type: "toolInputDelta", - index: 0, - text: '{"query":"', - }, - ], - }, - }), - expect.objectContaining({ - params: { - id: "exchange-1", - items: [ - { - type: "toolInputDelta", - index: 0, - text: 'weather"}', - }, - ], - }, - }), - ]) - }) - }) - - it.live("falls back to OpenAI deltas when partial tool input is unavailable", () => { - const peer = startTransportPeer( - ({ request: frame, socket }) => { - if (frame.method === "llm.attach") - socket.send( - JSON.stringify({ - jsonrpc: "2.0", - method: "llm.request", - params: request, - }), - ) - sendResult(socket, frame, frame.method === "llm.attach" ? { attached: true } : { ok: true }) - }, - { - capabilities: (offered) => offered.filter((capability) => capability !== "llm.tool-input-delta"), - }, - ) - - return Effect.gen(function* () { - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const backend = yield* SimulationConnector.backend(peer.url) - const llm = yield* LlmController.make(backend) - yield* llm.queue( - Llm.toolCall( - { - index: 0, - id: "call_legacy", - name: "lookup", - input: { query: "weather" }, - }, - { delay: 0, chunkSize: 100 }, - ), - Llm.finish("tool-calls"), - ) - yield* llm.settle() - - const chunk = peer.received.find(({ request: frame }) => frame.method === "llm.chunk")?.request - expect(chunk).toMatchObject({ - params: { - id: "exchange-1", - items: [ - { - type: "raw", - chunk: { - choices: [ - { - delta: { - tool_calls: [ - { - index: 0, - id: "call_legacy", - function: { - name: "lookup", - arguments: '{"query":"weather"}', - }, - }, - ], - }, - }, - ], - }, - }, - ], - }, - }) - }) - }) - - it.live("serves requests and keeps titles outside normal sequencing", () => { - const random = vi.spyOn(Math, "random").mockReturnValue(0.5) - const titleRequest = { - ...request, - id: "title-1", - body: { - messages: [ - { - role: "system", - content: "You are a title generator. Generate a title.", - }, - ], - }, - } - const chunksSent = Promise.withResolvers() - let chunkCount = 0 - const peer = startTransportPeer(({ request: frame, socket }) => { - if (frame.method === "llm.chunk" && ++chunkCount === 2) chunksSent.resolve() - sendResult(socket, frame, frame.method === "llm.attach" ? { attached: true } : { ok: true }) - }) - - return Effect.gen(function* () { - yield* Effect.addFinalizer(() => Effect.sync(() => random.mockRestore())) - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const backend = yield* SimulationConnector.backend(peer.url) - const llm = yield* LlmController.make(backend) - yield* llm.title(() => Effect.succeed("A concise title")) - yield* llm.serve(() => LlmController.response(Llm.text("served", { delay: 0, chunkSize: 100 }))) - const attached = peer.received[0] - if (attached === undefined) return yield* Effect.dieMessage("llm.attach was not received") - const socket = attached.socket - for (const params of [titleRequest, request]) - socket.send( - JSON.stringify({ - jsonrpc: "2.0", - method: "llm.request", - params, - }), - ) - yield* Effect.promise(() => chunksSent.promise) - yield* llm.settle() - - const chunks = peer.received.map(({ request }) => request).filter((frame) => frame.method === "llm.chunk") - expect(chunks).toHaveLength(2) - expect(chunks).toEqual( - expect.arrayContaining([ - expect.objectContaining({ - params: { - id: "title-1", - items: [{ type: "textDelta", text: "A concise title" }], - }, - }), - expect.objectContaining({ - params: { - id: "exchange-1", - items: [{ type: "textDelta", text: "served" }], - }, - }), - ]), - ) - }) - }) - - it.live("fails settlement for output after a terminal event", () => { - const peer = startTransportPeer(({ request: frame, socket }) => { - if (frame.method === "llm.attach") - socket.send( - JSON.stringify({ - jsonrpc: "2.0", - method: "llm.request", - params: request, - }), - ) - sendResult(socket, frame, frame.method === "llm.attach" ? { attached: true } : { ok: true }) - }) - - return Effect.gen(function* () { - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const backend = yield* SimulationConnector.backend(peer.url) - const llm = yield* LlmController.make(backend) - yield* llm.queue(Llm.finish(), Llm.text("too late", { delay: 0 })) - const error = yield* llm.settle().pipe(Effect.flip) - expect(error).toMatchObject({ - _tag: "LlmControllerError", - operation: "respond", - requestId: "exchange-1", - }) - expect(error.message).toContain("after its terminal event") - }) - }) - - it.live("settles when pending confirms an invocation was terminated externally", () => { - let chunks = 0 - const peer = startTransportPeer(({ request: frame, socket }) => { - if (frame.method === "llm.attach") { - socket.send( - JSON.stringify({ - jsonrpc: "2.0", - method: "llm.request", - params: request, - }), - ) - return sendResult(socket, frame, { attached: true }) - } - if (frame.method === "llm.chunk" && ++chunks === 2) - return sendError(socket, frame, "Simulated provider invocation not found or already finished: exchange-1") - if (frame.method === "llm.pending") return sendResult(socket, frame, { invocations: [] }) - sendResult(socket, frame, { ok: true }) - }) - - return Effect.gen(function* () { - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const backend = yield* SimulationConnector.backend(peer.url) - const llm = yield* LlmController.make(backend) - yield* llm.queue( - Llm.text("first", { delay: 0, chunkSize: 100 }), - Llm.text("second", { delay: 0, chunkSize: 100 }), - ) - yield* llm.settle() - - expect(peer.received.map(({ request: frame }) => frame.method)).toEqual([ - "llm.attach", - "llm.chunk", - "llm.chunk", - "llm.pending", - ]) - }) - }) - - it.live("preserves a write failure while the invocation is still pending", () => { - const peer = startTransportPeer(({ request: frame, socket }) => { - if (frame.method === "llm.attach") { - socket.send( - JSON.stringify({ - jsonrpc: "2.0", - method: "llm.request", - params: request, - }), - ) - return sendResult(socket, frame, { attached: true }) - } - if (frame.method === "llm.chunk") return sendError(socket, frame, "chunk rejected") - if (frame.method === "llm.pending") return sendResult(socket, frame, { invocations: [request] }) - sendResult(socket, frame, { ok: true }) - }) - - return Effect.gen(function* () { - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const backend = yield* SimulationConnector.backend(peer.url) - const llm = yield* LlmController.make(backend) - yield* llm.queue(Llm.text("rejected", { delay: 0, chunkSize: 100 })) - const error = yield* llm.settle().pipe(Effect.flip) - - expect(error).toMatchObject({ - _tag: "LlmControllerError", - operation: "llm.chunk", - requestId: "exchange-1", - }) - expect(error.message).toContain("chunk rejected") - }) - }) - - it.effect("reports unused queued responses at settlement", () => { - const peer = startTransportPeer(({ request: frame, socket }) => - sendResult(socket, frame, frame.method === "llm.attach" ? { attached: true } : { ok: true }), - ) - - return Effect.gen(function* () { - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const backend = yield* SimulationConnector.backend(peer.url) - const llm = yield* LlmController.make(backend, { - settlementTimeout: 20, - }) - yield* llm.queue(Llm.text("unused")) - const settlement = yield* Effect.forkChild(llm.settle().pipe(Effect.flip)) - yield* TestClock.adjust(20) - const error = yield* Fiber.join(settlement) - expect(error).toBeInstanceOf(LlmController.LlmSettlementError) - expect(error).toMatchObject({ - unusedResponses: 1, - unexpectedRequests: 0, - }) - }) - }) - - it.live("send waits until its response is accepted", () => { - const peer = startTransportPeer(({ request: frame, socket }) => { - if (frame.method === "llm.attach") - socket.send( - JSON.stringify({ - jsonrpc: "2.0", - method: "llm.request", - params: request, - }), - ) - sendResult(socket, frame, frame.method === "llm.attach" ? { attached: true } : { ok: true }) - }) - - return Effect.gen(function* () { - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const backend = yield* SimulationConnector.backend(peer.url) - const llm = yield* LlmController.make(backend) - yield* llm.send(Llm.raw({ accepted: true })) - yield* llm.settle() - expect(peer.received.some(({ request }) => request.method === "llm.finish")).toBe(true) - }) - }) - - it.live("serves a request that arrived before serve mode was selected", () => { - const peer = startTransportPeer(({ request: frame, socket }) => { - if (frame.method === "llm.attach") - socket.send( - JSON.stringify({ - jsonrpc: "2.0", - method: "llm.request", - params: request, - }), - ) - sendResult(socket, frame, frame.method === "llm.attach" ? { attached: true } : { ok: true }) - }) - - return Effect.gen(function* () { - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const backend = yield* SimulationConnector.backend(peer.url) - const llm = yield* LlmController.make(backend) - yield* Effect.yieldNow - yield* llm.serve(() => LlmController.response(Llm.text("late serve", { delay: 0, chunkSize: 100 }))) - yield* llm.settle() - expect( - peer.received.some( - ({ request }) => request.method === "llm.chunk" && JSON.stringify(request.params).includes("late serve"), - ), - ).toBe(true) - }) - }) - - it.live("reports defects thrown by serve handlers", () => { - const peer = startTransportPeer(({ request: frame, socket }) => { - if (frame.method === "llm.attach") - socket.send( - JSON.stringify({ - jsonrpc: "2.0", - method: "llm.request", - params: request, - }), - ) - sendResult(socket, frame, frame.method === "llm.attach" ? { attached: true } : { ok: true }) - }) - - return Effect.gen(function* () { - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const backend = yield* SimulationConnector.backend(peer.url) - const llm = yield* LlmController.make(backend) - yield* llm.serve(() => { - throw new Error("serve exploded") - }) - const failure = yield* llm.settle().pipe(Effect.flip) - expect(failure).toMatchObject({ - _tag: "LlmControllerError", - operation: "respond", - requestId: "exchange-1", - }) - expect(failure.message).toContain("serve exploded") - }) - }) - - it.live("fails a pending send when the controller shuts down", () => { - const peer = startTransportPeer(({ request: frame, socket }) => - sendResult(socket, frame, frame.method === "llm.attach" ? { attached: true } : { ok: true }), - ) - - return Effect.gen(function* () { - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const backend = yield* SimulationConnector.backend(peer.url) - const llm = yield* LlmController.make(backend) - const sending = yield* Effect.forkChild(llm.send(Llm.text("pending")).pipe(Effect.flip)) - yield* Effect.yieldNow - yield* llm.shutdown() - const failure = yield* Fiber.join(sending) - expect(failure).toMatchObject({ - _tag: "LlmControllerError", - operation: "shutdown", - }) - }) - }) - - it.live("fails when the backend connection closes unexpectedly", () => { - const peer = startTransportPeer(({ request: frame, socket }) => - sendResult(socket, frame, frame.method === "llm.attach" ? { attached: true } : { ok: true }), - ) - - return Effect.gen(function* () { - const backend = yield* SimulationConnector.backend(peer.url) - const llm = yield* LlmController.make(backend) - yield* Effect.promise(() => peer.stop()) - yield* backend.closed - yield* Effect.yieldNow - const failure = yield* llm.settle().pipe(Effect.flip) - expect(failure).toMatchObject({ - _tag: "LlmControllerError", - operation: "backend", - }) - }) - }) -}) diff --git a/packages/drive/test/driver/llm-state.test.ts b/packages/drive/test/driver/llm-state.test.ts deleted file mode 100644 index 2fc3476deea..00000000000 --- a/packages/drive/test/driver/llm-state.test.ts +++ /dev/null @@ -1,95 +0,0 @@ -import { describe, expect, it } from "vitest" -import * as Deferred from "effect/Deferred" -import * as Effect from "effect/Effect" -import * as Stream from "effect/Stream" -import { LlmControllerError } from "../../src/driver/llm-errors.js" -import * as LlmState from "../../src/driver/llm-state.js" - -const completion = () => Effect.runSync(Deferred.make()) - -const request = (id: string): LlmState.AttachedRequest => ({ - request: { id, url: "https://example.test", body: {} }, - backend: {} as LlmState.AttachedRequest["backend"], -}) - -const handler: LlmState.ServeHandler = () => Stream.empty - -describe("LlmState", () => { - it("rejects queue/send after serve mode is selected", () => { - const state = LlmState.serve(LlmState.initial, handler) - expect(LlmState.rejectEnqueue(state, "queue")).toMatchObject({ - _tag: "LlmModeError", - operation: "queue", - }) - }) - - it("rejects serve after queue mode is selected", () => { - const state = LlmState.enqueue(LlmState.initial, { output: [] }) - expect(LlmState.rejectServe(state)).toMatchObject({ - _tag: "LlmModeError", - operation: "serve", - }) - }) - - it("rejects control calls while settling", () => { - const state = LlmState.beginSettling(LlmState.initial) - expect(LlmState.rejectEnqueue(state, "send")).toMatchObject({ - _tag: "LlmControllerError", - operation: "send", - }) - }) - - it("selects no job until a queued request has a queued response", () => { - const requested = LlmState.pushRequest(LlmState.initial, request("r1")) - expect(LlmState.nextNormal(requested)).toBeUndefined() - - const responded = LlmState.enqueue(requested, { output: [] }) - const start = LlmState.nextNormal(responded) - expect(start?.request.request.id).toBe("r1") - expect(start?.source._tag).toBe("Queued") - }) - - it("serve mode runs requests without queued responses", () => { - const state = LlmState.pushRequest(LlmState.serve(LlmState.initial, handler), request("r1")) - expect(LlmState.nextNormal(state)?.source._tag).toBe("Served") - }) - - it("startNormal consumes the request and response and bumps the index", () => { - const state = LlmState.enqueue(LlmState.pushRequest(LlmState.initial, request("r1")), { output: [] }) - const start = LlmState.nextNormal(state)! - const next = LlmState.startNormal(state, start, completion()) - expect(next.requests).toHaveLength(0) - expect(next.responses).toHaveLength(0) - expect(next.activeNormal).toHaveLength(1) - expect(next.requestIndex).toBe(1) - expect(LlmState.nextNormal(next)).toBeUndefined() - }) - - it("settles Done when idle, Wait while work remains, Fail on unexpected requests", () => { - expect(LlmState.inspectSettlement(LlmState.initial)._tag).toBe("Done") - - const waiting = LlmState.enqueue(LlmState.initial, { output: [] }) - expect(LlmState.inspectSettlement(waiting)._tag).toBe("Wait") - - const unexpected = LlmState.pushRequest(LlmState.enqueue(LlmState.initial, { output: [] }), request("r1")) - const drained = LlmState.startNormal(unexpected, LlmState.nextNormal(unexpected)!, completion()) - const late = LlmState.pushRequest(drained, request("r2")) - const settlement = LlmState.inspectSettlement({ - ...late, - activeNormal: [], - }) - expect(settlement).toMatchObject({ - _tag: "Fail", - error: { _tag: "LlmSettlementError", unexpectedRequests: 1 }, - }) - }) - - it("records only the first failure and keeps it", () => { - const error = (message: string) => new LlmControllerError({ operation: "test", message }) - const first = LlmState.recordFailure(LlmState.initial, error("first")) - expect(first[1].isFirst).toBe(true) - const second = LlmState.recordFailure(first[0], error("second")) - expect(second[1].isFirst).toBe(false) - expect(second[1].failure).toBe(first[1].failure) - }) -}) diff --git a/packages/drive/test/driver/report.test.ts b/packages/drive/test/driver/report.test.ts deleted file mode 100644 index e69e6b1a28b..00000000000 --- a/packages/drive/test/driver/report.test.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { describe, expect, it } from "@effect/vitest" -import * as Effect from "effect/Effect" -import * as Exit from "effect/Exit" -import { AbsolutePath, decodeAbsolutePath, decodeRunReport } from "../../src/driver/report.js" - -const negotiated = { - _tag: "Negotiated" as const, - endpoint: "ws://127.0.0.1:40900", - role: "ui" as const, - protocolVersion: 1 as const, - server: { name: "opencode", version: "2.0.0" }, - capabilities: ["ui.state"], -} - -describe("driver report", () => { - it.effect("brands POSIX and Windows absolute paths", () => - Effect.gen(function* () { - expect(yield* decodeAbsolutePath("/tmp/drive")).toBe("/tmp/drive") - expect(yield* decodeAbsolutePath("C:\\drive\\output.mp4")).toBe("C:\\drive\\output.mp4") - expect(yield* decodeAbsolutePath("\\\\server\\share\\output.mp4")).toBe("\\\\server\\share\\output.mp4") - }), - ) - - it.effect("rejects relative and malformed paths", () => - Effect.gen(function* () { - for (const path of ["tmp/drive", "../drive", "", "C:drive", "/tmp/\0drive"]) { - expect(Exit.isFailure(yield* Effect.exit(decodeAbsolutePath(path)))).toBe(true) - } - }), - ) - - it.effect("decodes a compact structured report", () => - Effect.gen(function* () { - const report = yield* decodeRunReport({ - artifacts: "/tmp/drive", - retained: true, - recordings: ["/tmp/output.mp4"], - compatibility: [negotiated], - }) - expect(report).toEqual({ - artifacts: AbsolutePath.make("/tmp/drive"), - retained: true, - recordings: [AbsolutePath.make("/tmp/output.mp4")], - compatibility: [negotiated], - }) - }), - ) -}) diff --git a/packages/drive/test/driver/shared.test.ts b/packages/drive/test/driver/shared.test.ts deleted file mode 100644 index 62eb74b6a7f..00000000000 --- a/packages/drive/test/driver/shared.test.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { expect, it } from "@effect/vitest" -import { Deferred, Effect, Fiber, Ref } from "effect" -import * as SharedEffect from "../../src/driver/shared.js" - -it.effect("does not let an interrupted caller poison terminal work", () => - Effect.gen(function* () { - const gate = yield* Deferred.make() - const runs = yield* Ref.make(0) - const shared = yield* SharedEffect.make( - Ref.update(runs, (count) => count + 1).pipe(Effect.andThen(Deferred.await(gate)), Effect.as("settled")), - ) - const first = yield* Effect.forkChild(shared) - yield* Effect.yieldNow - yield* Fiber.interrupt(first) - yield* Deferred.succeed(gate, undefined) - - expect(yield* shared).toBe("settled") - expect(yield* Ref.get(runs)).toBe(1) - }), -) diff --git a/packages/drive/test/driver/ui.test.ts b/packages/drive/test/driver/ui.test.ts deleted file mode 100644 index 62dc72086ee..00000000000 --- a/packages/drive/test/driver/ui.test.ts +++ /dev/null @@ -1,477 +0,0 @@ -import { describe, expect, it } from "@effect/vitest" -import { Effect, type Types } from "effect" -import * as OpenCodeUi from "../../src/driver/ui.js" -import * as SimulationConnector from "../../src/simulation/connector.js" -import { sendError, sendResult, startTransportPeer } from "../simulation/transport-peer.js" -import { mkdtemp, rm } from "node:fs/promises" -import { tmpdir } from "node:os" -import { join } from "node:path" -import { createCanvas, loadImage } from "@napi-rs/canvas" - -const editor = { - id: "prompt", - num: 3, - x: 2, - y: 4, - width: 20, - height: 6, - focusable: true, - focused: true, - clickable: true, - editor: true, -} - -const state = { - focused: { renderable: 3, editor: true }, - elements: [editor], -} - -const snapshot = { - format: "opencode-ui-snapshot-v1", - nodes: [ - { - id: "session.permission", - instance: "permission-1", - role: "dialog", - label: "Permission required: Edit fixture.txt", - element: 2, - expanded: false, - }, - { - id: "session.permission.action.once", - instance: "permission-1", - parent: "session.permission", - role: "option", - label: "Allow once", - element: 3, - focused: true, - selected: true, - disabled: false, - }, - ], -} - -const frame = { - cols: 2, - rows: 1, - cursor: [0, 0] as const, - lines: [ - { - spans: [{ text: "ok", fg: [255, 255, 255, 255] as const, bg: [0, 0, 0, 255] as const, attributes: 0, width: 2 }], - }, - ], -} - -type ScreenshotFailure = Effect.Effect.Error> -const operationErrorExcludesScreenshotError: Types.Equals< - Extract, - never -> = true -const screenshotErrorIsSpecific: Types.Equals = true -void operationErrorExcludesScreenshotError -void screenshotErrorIsSpecific - -describe("OpenCodeUi", () => { - it.live("captures a normalized terminal frame", () => { - const peer = startTransportPeer(({ request, socket }) => sendResult(socket, request, frame)) - - return Effect.gen(function* () { - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const connection = yield* SimulationConnector.ui(peer.url) - expect(yield* OpenCodeUi.make(connection).capture()).toEqual(frame) - expect(peer.received.map(({ request }) => request)).toEqual([{ jsonrpc: "2.0", id: 1, method: "ui.capture" }]) - }) - }) - - it.live("wraps generated UI RPCs with user-level operations", () => { - let matchCalls = 0 - const peer = startTransportPeer(({ request, socket }) => { - if (request.method === "ui.matches") { - matchCalls++ - sendResult(socket, request, matchCalls > 1) - return - } - sendResult(socket, request, state) - }) - - return Effect.gen(function* () { - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const connection = yield* SimulationConnector.ui(peer.url) - const ui = OpenCodeUi.make(connection) - - expect(yield* ui.submit("hello")).toEqual(state) - expect(yield* ui.press("escape", { ctrl: true })).toEqual(state) - expect(yield* ui.click(3)).toEqual(state) - expect(yield* ui.waitFor("ready", { timeout: 1_000, interval: 1 })).toEqual(state) - expect(yield* ui.getElement({ editor: true })).toEqual(editor) - - expect(peer.received.map(({ request }) => request)).toEqual([ - { - jsonrpc: "2.0", - id: 1, - method: "ui.type", - params: { text: "hello" }, - }, - { jsonrpc: "2.0", id: 2, method: "ui.enter" }, - { - jsonrpc: "2.0", - id: 3, - method: "ui.press", - params: { key: "escape", modifiers: { ctrl: true } }, - }, - { jsonrpc: "2.0", id: 4, method: "ui.state" }, - { - jsonrpc: "2.0", - id: 5, - method: "ui.click", - params: { target: 3, x: 10, y: 3 }, - }, - { - jsonrpc: "2.0", - id: 6, - method: "ui.matches", - params: { text: "ready" }, - }, - { - jsonrpc: "2.0", - id: 7, - method: "ui.matches", - params: { text: "ready" }, - }, - { jsonrpc: "2.0", id: 8, method: "ui.state" }, - { jsonrpc: "2.0", id: 9, method: "ui.state" }, - ]) - }) - }) - - it.live("renders negotiated screenshots from captured frames inside Drive", () => { - const peer = startTransportPeer(({ request, socket }) => sendResult(socket, request, frame)) - - return Effect.gen(function* () { - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const directory = yield* Effect.promise(() => mkdtemp(join(tmpdir(), "opencode-drive-screenshot-"))) - yield* Effect.addFinalizer(() => Effect.promise(() => rm(directory, { recursive: true, force: true }))) - const connection = yield* SimulationConnector.ui(peer.url) - const path = yield* OpenCodeUi.make(connection, { screenshotDirectory: directory }).screenshot("home") - - expect(path).toBe(join(directory, "home.png")) - const bytes = yield* Effect.promise(() => Bun.file(path).arrayBuffer()) - expect(Buffer.from(bytes).subarray(0, 8)).toEqual(Buffer.from([137, 80, 78, 71, 13, 10, 26, 10])) - expect(peer.received.map(({ request }) => request)).toEqual([{ jsonrpc: "2.0", id: 1, method: "ui.capture" }]) - }) - }) - - it.live("preserves transparent foreground and background colors in screenshots", () => { - const transparent = { - cols: 2, - rows: 1, - cursor: [0, 0] as const, - lines: [ - { - spans: [ - { text: "█", fg: [0, 255, 0, 0] as const, bg: [255, 0, 0, 255] as const, attributes: 0, width: 1 }, - { text: " ", fg: [255, 255, 255, 255] as const, bg: [0, 0, 255, 0] as const, attributes: 0, width: 1 }, - ], - }, - ], - } - const peer = startTransportPeer(({ request, socket }) => sendResult(socket, request, transparent)) - return Effect.gen(function* () { - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const directory = yield* Effect.promise(() => mkdtemp(join(tmpdir(), "opencode-drive-alpha-"))) - yield* Effect.addFinalizer(() => Effect.promise(() => rm(directory, { recursive: true, force: true }))) - const connection = yield* SimulationConnector.ui(peer.url) - const path = yield* OpenCodeUi.make(connection, { screenshotDirectory: directory }).screenshot("alpha") - const image = yield* Effect.promise(() => loadImage(path)) - const canvas = createCanvas(image.width, image.height) - const context = canvas.getContext("2d") - context.drawImage(image, 0, 0) - - expect(Array.from(context.getImageData(5, 10, 1, 1).data)).toEqual([255, 0, 0, 255]) - expect(Array.from(context.getImageData(15, 10, 1, 1).data)).toEqual([8, 8, 8, 255]) - }) - }) - - it.live("selects and clicks semantic UI nodes", () => { - let snapshotCalls = 0 - const peer = startTransportPeer(({ request, socket }) => { - if (request.method === "ui.snapshot") { - snapshotCalls++ - sendResult(socket, request, snapshotCalls === 2 ? { format: "opencode-ui-snapshot-v1", nodes: [] } : snapshot) - return - } - sendResult(socket, request, state) - }) - - return Effect.gen(function* () { - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const connection = yield* SimulationConnector.ui(peer.url) - const ui = OpenCodeUi.make(connection) - - expect(yield* ui.snapshot()).toEqual(snapshot) - const option = yield* ui.getNode( - { - instance: "permission-1", - role: "option", - selected: true, - disabled: false, - }, - { interval: 1 }, - ) - expect(option).toEqual(snapshot.nodes[1]) - expect(yield* ui.click(option)).toEqual(state) - expect(peer.received.map(({ request }) => request)).toEqual([ - { jsonrpc: "2.0", id: 1, method: "ui.snapshot" }, - { jsonrpc: "2.0", id: 2, method: "ui.snapshot" }, - { jsonrpc: "2.0", id: 3, method: "ui.snapshot" }, - { jsonrpc: "2.0", id: 4, method: "ui.state" }, - { - jsonrpc: "2.0", - id: 5, - method: "ui.click", - params: { - target: 3, - x: 10, - y: 3, - semantic: { - id: "session.permission.action.once", - instance: "permission-1", - element: 3, - }, - }, - }, - ]) - }) - }) - - it.live("sends stale semantic handles to the endpoint without polling", () => { - const peer = startTransportPeer(({ request, socket }) => { - if (request.method === "ui.state") { - sendResult(socket, request, { ...state, elements: [] }) - return - } - sendError(socket, request, "target is stale") - }) - - return Effect.gen(function* () { - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const connection = yield* SimulationConnector.ui(peer.url) - const error = yield* OpenCodeUi.make(connection).click(snapshot.nodes[1]!).pipe(Effect.flip) - - expect(error).toMatchObject({ - _tag: "SimulationRequestError", - method: "ui.click", - message: "target is stale", - }) - expect(peer.received.map(({ request }) => request)).toEqual([ - { jsonrpc: "2.0", id: 1, method: "ui.state" }, - { - jsonrpc: "2.0", - id: 2, - method: "ui.click", - params: { - target: 3, - x: 0, - y: 0, - semantic: { - id: "session.permission.action.once", - instance: "permission-1", - element: 3, - }, - }, - }, - ]) - }) - }) - - it.live("reports unavailable semantic snapshots without breaking older endpoints", () => { - const peer = startTransportPeer( - ({ request, socket }) => { - if (request.method === "simulation.handshake") { - const params = request.params as { - readonly requiredCapabilities: ReadonlyArray - } - sendResult(socket, request, { - protocolVersion: 1, - role: "ui", - server: { name: "opencode", version: "older" }, - capabilities: params.requiredCapabilities, - }) - return - } - sendResult(socket, request, state) - }, - { handshake: false }, - ) - - return Effect.gen(function* () { - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const connection = yield* SimulationConnector.ui(peer.url) - const ui = OpenCodeUi.make(connection) - - expect(yield* ui.state()).toEqual(state) - const error = yield* ui.snapshot().pipe(Effect.flip) - expect(error).toBeInstanceOf(OpenCodeUi.UiCapabilityError) - expect(error).toMatchObject({ - capability: "ui.snapshot", - message: "ui.snapshot is not available on this OpenCode endpoint", - }) - const clickError = yield* ui.click(snapshot.nodes[1]!).pipe(Effect.flip) - expect(clickError).toMatchObject({ - capability: "ui.click.semantic", - message: "semantic ui.click is not available on this OpenCode endpoint", - }) - expect(peer.received.map(({ request }) => request.method)).toEqual(["simulation.handshake", "ui.state"]) - }) - }) - - it.live("reports ambiguous semantic nodes as typed UI failures", () => { - const peer = startTransportPeer(({ request, socket }) => - sendResult(socket, request, { - ...snapshot, - nodes: [ - snapshot.nodes[0], - snapshot.nodes[1], - { - ...snapshot.nodes[1], - id: "session.permission.action.always", - element: 4, - }, - ], - }), - ) - - return Effect.gen(function* () { - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const connection = yield* SimulationConnector.ui(peer.url) - const error = yield* OpenCodeUi.make(connection).getNode({ role: "option" }).pipe(Effect.flip) - expect(error).toBeInstanceOf(OpenCodeUi.UiNodeAmbiguousError) - expect(error).toMatchObject({ - count: 2, - message: "ui.getNode matched 2 semantic nodes", - }) - }) - }) - - it.live("reports ambiguous elements as typed UI failures", () => { - const peer = startTransportPeer(({ request, socket }) => - sendResult(socket, request, { - ...state, - elements: [editor, { ...editor, num: 4 }], - }), - ) - - return Effect.gen(function* () { - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const connection = yield* SimulationConnector.ui(peer.url) - const error = yield* OpenCodeUi.make(connection).getElement({ editor: true }).pipe(Effect.flip) - expect(error).toBeInstanceOf(OpenCodeUi.UiElementAmbiguousError) - expect(error).toMatchObject({ - count: 2, - message: "ui.getElement matched 2 elements", - }) - }) - }) - - it.live("rejects non-boolean Effect predicate values", () => { - const peer = startTransportPeer(({ request, socket }) => sendResult(socket, request, state)) - - return Effect.gen(function* () { - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const connection = yield* SimulationConnector.ui(peer.url) - const predicate = (() => Effect.succeed("not boolean")) as unknown as OpenCodeUi.EffectPredicate - const error = yield* OpenCodeUi.make(connection).waitFor(predicate).pipe(Effect.flip) - - expect(error).toBeInstanceOf(OpenCodeUi.UiPredicateError) - expect(error).toMatchObject({ - message: "ui.waitFor predicate must return a boolean or Effect", - }) - }) - }) - - it.live("interrupts timed-out polling and remains usable", () => { - const peer = startTransportPeer(({ request, socket }) => { - if (request.method === "ui.matches") return - if (request.method === "ui.capture") { - sendResult(socket, request, frame) - return - } - sendResult(socket, request, state) - }) - - return Effect.gen(function* () { - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const connection = yield* SimulationConnector.ui(peer.url) - const ui = OpenCodeUi.make(connection) - const error = yield* ui.waitFor("never", { timeout: 20, interval: 100 }).pipe(Effect.flip) - - expect(error).toBeInstanceOf(OpenCodeUi.UiTimeoutError) - expect(error).toMatchObject({ - operation: "waitFor", - milliseconds: 20, - frame, - }) - expect(yield* ui.state()).toEqual(state) - expect(peer.received.map(({ request }) => request)).toEqual([ - { - jsonrpc: "2.0", - id: 1, - method: "ui.matches", - params: { text: "never" }, - }, - { jsonrpc: "2.0", id: 2, method: "ui.capture" }, - { jsonrpc: "2.0", id: 3, method: "ui.state" }, - ]) - }) - }) - - it.live("preserves the polling timeout when evidence capture fails", () => { - const peer = startTransportPeer(({ request, socket }) => { - if (request.method === "ui.matches") return - sendError(socket, request, "capture failed") - }) - - return Effect.gen(function* () { - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const connection = yield* SimulationConnector.ui(peer.url) - const error = yield* OpenCodeUi.make(connection) - .waitFor("never", { timeout: 20, interval: 100 }) - .pipe(Effect.flip) - - expect(error).toBeInstanceOf(OpenCodeUi.UiTimeoutError) - expect(error).toMatchObject({ - operation: "waitFor", - milliseconds: 20, - message: 'timed out waiting for the UI to match "never"', - }) - expect(error).not.toHaveProperty("frame") - expect(peer.received.map(({ request }) => request)).toEqual([ - { - jsonrpc: "2.0", - id: 1, - method: "ui.matches", - params: { text: "never" }, - }, - { jsonrpc: "2.0", id: 2, method: "ui.capture" }, - ]) - }) - }) - - it.live("does not retry RPC failures while polling", () => { - const peer = startTransportPeer(({ request, socket }) => sendError(socket, request, "match failed")) - - return Effect.gen(function* () { - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const connection = yield* SimulationConnector.ui(peer.url) - const error = yield* OpenCodeUi.make(connection) - .waitFor("ready", { timeout: 1_000, interval: 1 }) - .pipe(Effect.flip) - expect(error).toMatchObject({ - _tag: "SimulationRequestError", - method: "ui.matches", - message: "match failed", - }) - expect(peer.received).toHaveLength(1) - }) - }) -}) diff --git a/packages/drive/test/fixtures/callback-script.ts b/packages/drive/test/fixtures/callback-script.ts deleted file mode 100644 index 3fe96464f1d..00000000000 --- a/packages/drive/test/fixtures/callback-script.ts +++ /dev/null @@ -1 +0,0 @@ -export default async function callbackScript() {} diff --git a/packages/drive/test/fixtures/caught-timeout-script.ts b/packages/drive/test/fixtures/caught-timeout-script.ts deleted file mode 100644 index a98df98e19a..00000000000 --- a/packages/drive/test/fixtures/caught-timeout-script.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { defineScript } from "opencode-drive" -import * as Effect from "effect/Effect" - -export default defineScript({ - run: ({ ui }) => - Effect.gen(function* () { - yield* Effect.matchEffect(ui.waitFor("this text never appears", { timeout: 50 }), { - onFailure: () => Effect.sleep(30_000), - onSuccess: Effect.succeed, - }) - }), -}) diff --git a/packages/drive/test/fixtures/crashing-script.ts b/packages/drive/test/fixtures/crashing-script.ts deleted file mode 100644 index 4eb2a466ef5..00000000000 --- a/packages/drive/test/fixtures/crashing-script.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { defineScript } from "opencode-drive" -import * as Effect from "effect/Effect" - -export default defineScript({ - run: () => - Effect.gen(function* () { - Bun.serve({ - hostname: "127.0.0.1", - port: 0, - fetch: () => new Response("leaked script server"), - }) - yield* Effect.fail(new Error("script crashed")) - }), -}) diff --git a/packages/drive/test/fixtures/failed-launch-retry-script.ts b/packages/drive/test/fixtures/failed-launch-retry-script.ts deleted file mode 100644 index b281fef11ec..00000000000 --- a/packages/drive/test/fixtures/failed-launch-retry-script.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { defineScript } from "opencode-drive" -import * as Effect from "effect/Effect" - -export default defineScript({ - launch: "manual", - run: ({ server, artifacts }) => - Effect.gen(function* () { - const first = yield* server.launch().pipe(Effect.flip) - const firstPid = yield* servicePid(artifacts) - yield* waitUntilStopped(firstPid) - - const second = yield* server.launch().pipe(Effect.flip) - const secondPid = yield* servicePid(artifacts) - yield* waitUntilStopped(secondPid) - - if (first.operation !== "opencode.connect" || second.operation !== "opencode.connect") - return yield* Effect.fail(new Error(`unexpected launch failures: ${first.operation}, ${second.operation}`)) - if (firstPid === secondPid) - return yield* Effect.fail(new Error("failed launch did not start a fresh server process")) - - yield* Effect.tryPromise(() => - Bun.write(`${artifacts}/failed-launch-retry.json`, JSON.stringify({ firstPid, secondPid })), - ) - }), -}) - -const servicePid = (artifacts: string) => - Effect.tryPromise(() => Bun.file(`${artifacts}/service.pid`).text().then(Number)) - -const waitUntilStopped = (pid: number) => - Effect.gen(function* () { - for (let attempt = 0; attempt < 100 && running(pid); attempt++) yield* Effect.sleep(10) - if (running(pid)) return yield* Effect.fail(new Error(`server process ${pid} is still running`)) - }) - -function running(pid: number) { - try { - process.kill(pid, 0) - return true - } catch { - return false - } -} diff --git a/packages/drive/test/fixtures/fake-opencode.ts b/packages/drive/test/fixtures/fake-opencode.ts deleted file mode 100644 index e44eb2f52fa..00000000000 --- a/packages/drive/test/fixtures/fake-opencode.ts +++ /dev/null @@ -1,383 +0,0 @@ -import { mkdir } from "node:fs/promises" -import { resolve } from "node:path" - -const serviceMode = process.env.OPENCODE_DRIVE_SCRIPTED === "1" -const role = serviceMode - ? process.argv.includes("serve") && process.argv.includes("--service") - ? "service" - : "client" - : "legacy" -if (process.argv.includes("stdio-markers")) { - console.log(`fake-${role}-stdout`) - console.error(`fake-${role}-stderr`) -} -if (role === "service" && process.env.OPENCODE_TEST_HOME) - await Promise.all([ - Bun.write(`${process.env.OPENCODE_TEST_HOME}/service.pid`, String(process.pid)), - Bun.write(`${process.env.OPENCODE_TEST_HOME}/service-argv.json`, JSON.stringify(process.argv.slice(2))), - Bun.write(`${process.env.OPENCODE_TEST_HOME}/service-db.txt`, process.env.OPENCODE_DB ?? "missing"), - ]) - -const screen = { value: `Fake OpenCode${role === "client" ? ` ${process.env.OPENCODE_DRIVE}` : ""}` } -const drive = await resolveDrive() -const recordingStarted = performance.now() -const endpoints = drive.endpoints -let toolAttachments = 0 -let backendHandshakes = 0 -const exitAfterAttach = Promise.withResolvers() -const servicePassword = "drive-test-password" -const api = - role === "service" - ? Bun.serve({ - hostname: "127.0.0.1", - port: 0, - fetch(request) { - if (request.headers.get("authorization") !== `Basic ${btoa(`opencode:${servicePassword}`)}`) - return Response.json({ _tag: "UnauthorizedError", message: "Unauthorized" }, { status: 401 }) - const url = new URL(request.url) - if (url.pathname === "/api/health") return Response.json({ healthy: true, version: "test", pid: process.pid }) - if (url.pathname === "/api/server") { - const directory = process.env.XDG_STATE_HOME - ? resolve(process.env.XDG_STATE_HOME, "../../..", "files") - : undefined - if (request.headers.get("x-opencode-directory") !== encodeURIComponent(directory ?? "")) - return Response.json({ _tag: "InvalidRequestError", message: "Wrong directory" }, { status: 400 }) - return Response.json({ urls: [] }) - } - return Response.json({ _tag: "InvalidRequestError", message: "Not found" }, { status: 404 }) - }, - }) - : undefined -if (api !== undefined && process.env.XDG_STATE_HOME && !process.argv.includes("omit-service-registration")) { - const directory = `${process.env.XDG_STATE_HOME}/opencode` - await mkdir(directory, { recursive: true }) - await Bun.write( - `${directory}/service-testchannel.json`, - JSON.stringify({ - id: crypto.randomUUID(), - version: "test", - url: `http://127.0.0.1:${api.port}`, - pid: process.pid, - password: servicePassword, - }), - ) -} -if (drive.recording && role !== "service") - await Bun.write( - drive.recording.timeline, - `${JSON.stringify({ type: "header", version: 1, cols: 100, rows: 40, encoding: "base64" })}\n${JSON.stringify({ type: "output", at_ms: 0, data: Buffer.from("Fake OpenCode").toString("base64") })}\n`, - ) -if (process.env.OPENCODE_TEST_HOME && role !== "service") { - await Bun.write(`${process.env.OPENCODE_TEST_HOME}/child.pid`, String(process.pid)) - const launches = `${process.env.OPENCODE_TEST_HOME}/launches.txt` - await appendFile(launches, "launch\n") - await Bun.write(`${process.env.OPENCODE_TEST_HOME}/renderer.txt`, process.env.OPENCODE_DRIVE_RENDERER ?? "missing") - await Bun.write(`${process.env.OPENCODE_TEST_HOME}/child-cwd.txt`, process.cwd()) - const seeded = `${process.cwd()}/src/seeded.ts` - if (await Bun.file(seeded).exists()) - await Bun.write(`${process.env.OPENCODE_TEST_HOME}/seeded-at-launch.txt`, await Bun.file(seeded).text()) -} - -const ui = - role === "service" || process.argv.includes("no-ui") - ? undefined - : Bun.serve({ - hostname: "127.0.0.1", - port: Number(new URL(endpoints.ui).port), - fetch(request, server) { - if (server.upgrade(request)) return - return new Response("drive websocket", { status: 426 }) - }, - websocket: { - message(socket, input) { - const request = JSON.parse(String(input)) as { - readonly id?: number - readonly method: string - readonly params?: unknown - } - const result = frontend(request.method, request.params) - if (request.id !== undefined) socket.send(JSON.stringify({ jsonrpc: "2.0", id: request.id, result })) - }, - }, - }) - -const backend = - role === "client" - ? undefined - : Bun.serve({ - hostname: "127.0.0.1", - port: Number(new URL(endpoints.backend).port), - fetch(request, server) { - if (server.upgrade(request)) return - return new Response("drive websocket", { status: 426 }) - }, - websocket: { - async message(socket, input) { - const request = JSON.parse(String(input)) as { - readonly id?: number - readonly method: string - readonly params?: unknown - } - if ( - request.method === "simulation.handshake" && - process.argv.includes("reject-tool-handshake") && - ++backendHandshakes === 2 - ) { - if (request.id !== undefined) - socket.send( - JSON.stringify({ - jsonrpc: "2.0", - id: request.id, - error: { code: -32000, message: "tool handshake rejected" }, - }), - ) - return - } - if (request.method === "llm.chunk" && process.env.OPENCODE_TEST_HOME) { - await Bun.write(`${process.env.OPENCODE_TEST_HOME}/mock-response.json`, JSON.stringify(request.params)) - } - if (request.method.startsWith("llm.") && process.env.OPENCODE_TEST_HOME) { - const events = `${process.env.OPENCODE_TEST_HOME}/backend-events.jsonl` - await appendFile(events, `${JSON.stringify({ method: request.method, params: request.params })}\n`) - } - if (request.method.startsWith("tool.") && process.env.OPENCODE_TEST_HOME) { - const events = `${process.env.OPENCODE_TEST_HOME}/tool-events.jsonl` - await appendFile(events, `${JSON.stringify({ method: request.method, params: request.params })}\n`) - } - if (request.method === "tool.attach" && process.argv.includes("dynamic-tool")) - if ((++toolAttachments === 1 && !process.argv.includes("reconnect-tool")) || toolAttachments === 2) - socket.send( - JSON.stringify({ - jsonrpc: "2.0", - method: "tool.invocation", - params: { - id: "tool_1", - name: "lookup", - input: { query: "meaning" }, - context: { - sessionID: "ses_dynamic", - agent: "build", - messageID: "msg_dynamic", - id: "call_lookup", - }, - }, - }), - ) - if ( - request.method === "tool.attach" && - process.argv.includes("reject-tool-reconnect") && - toolAttachments === 2 - ) { - if (request.id !== undefined) - socket.send( - JSON.stringify({ - jsonrpc: "2.0", - id: request.id, - error: { code: -32000, message: "tool reconnect rejected" }, - }), - ) - return - } - const result = - request.method === "simulation.handshake" - ? handshake(request.params, "backend") - : request.method === "llm.attach" || request.method === "tool.attach" - ? { attached: true } - : { ok: true } - if (request.id !== undefined) socket.send(JSON.stringify({ jsonrpc: "2.0", id: request.id, result })) - if (request.method === "tool.attach" && process.argv.includes("reconnect-tool") && toolAttachments === 1) - setTimeout(() => socket.close(), 10) - if (request.method === "llm.attach") { - const requestDelay = Number(process.argv[3]) - if (Number.isFinite(requestDelay)) await Bun.sleep(requestDelay) - if (process.argv.includes("title-requests")) - socket.send( - JSON.stringify({ - jsonrpc: "2.0", - method: "llm.request", - params: { - id: "ex_title", - url: "https://api.openai.com/v1/chat/completions", - body: { - messages: [ - { - role: "system", - content: "You are a title generator. You output ONLY a thread title.", - }, - ], - }, - }, - }), - ) - if (process.argv.includes("latest-title-requests")) - socket.send( - JSON.stringify({ - jsonrpc: "2.0", - method: "llm.request", - params: { - id: "ex_title", - url: "https://api.openai.com/v1/chat/completions", - body: { - messages: [ - { - role: "user", - content: "Generate a title for this conversation:\n", - }, - { - role: "user", - content: "Show a compact status report for the viewport resize demo.", - }, - ], - }, - }, - }), - ) - socket.send( - JSON.stringify({ - jsonrpc: "2.0", - method: "llm.request", - params: { - id: "ex_mock", - url: "https://api.openai.com/v1/chat/completions", - body: {}, - }, - }), - ) - if (process.argv.includes("exit-after-attach")) exitAfterAttach.resolve() - } - }, - }, - }) - -if (process.argv.includes("write-stdio")) { - console.log(`fake opencode ${role} stdout`) - console.error(`fake opencode ${role} stderr`) -} - -await new Promise((resolve) => { - process.once("SIGINT", resolve) - if (process.argv.includes("ignore-sigterm")) process.on("SIGTERM", () => undefined) - else process.once("SIGTERM", resolve) - const lifetime = role === "service" ? Number.NaN : Number(process.argv[2]) - if (Number.isFinite(lifetime)) setTimeout(resolve, lifetime) - if (process.argv.includes("exit-after-attach")) void exitAfterAttach.promise.then(resolve) -}) -await Promise.all([ui?.stop(true), backend?.stop(true)]) - -function frontend(method: string, params: unknown) { - if (method === "simulation.handshake") return handshake(params, "ui") - if (method === "ui.capture") { - return { - cols: 80, - rows: 24, - cursor: [0, 0], - lines: [ - { - spans: [ - { - text: screen.value, - fg: [255, 255, 255, 255], - bg: [0, 0, 0, 255], - attributes: 0, - width: screen.value.length, - }, - ], - }, - ], - } - } - if (method === "ui.snapshot") { - return { - format: "opencode-ui-snapshot-v1", - nodes: [ - { - id: "prompt", - role: "textbox", - label: "Prompt", - element: 1, - focused: true, - disabled: false, - }, - ], - } - } - if (method === "ui.recording.finish") { - if (!drive.recording) throw new Error("recording is not enabled") - return drive.recording.timeline - } - if (method === "ui.resize" && drive.recording && isRecord(params)) { - void appendFile( - drive.recording.timeline, - `${JSON.stringify({ - type: "resize", - at_ms: Math.max(1, Math.round(performance.now() - recordingStarted)), - cols: params.cols, - rows: params.rows, - })}\n`, - ) - } - if (method === "ui.matches" && isRecord(params) && typeof params.text === "string") - return screen.value.includes(params.text) - if (method === "ui.type" && isRecord(params) && typeof params.text === "string") screen.value += `\n${params.text}` - if (method === "ui.enter") screen.value += "\n[enter]" - if (method === "trace.list" || method === "trace.export") return { records: [] } - if (method === "trace.clear") return { cleared: true } - return { - screen: screen.value, - focused: { renderable: 1, editor: true }, - elements: [ - { - id: "prompt", - num: 1, - x: 0, - y: 0, - width: 80, - height: 1, - focusable: true, - focused: true, - clickable: true, - editor: true, - }, - ], - } -} - -function handshake(params: unknown, role: "ui" | "backend") { - if (!isRecord(params)) throw new Error("invalid handshake") - const required = Array.isArray(params.requiredCapabilities) - ? params.requiredCapabilities.filter((value): value is string => typeof value === "string") - : [] - const optional = Array.isArray(params.optionalCapabilities) - ? params.optionalCapabilities.filter((value): value is string => typeof value === "string") - : [] - return { - protocolVersion: 1, - role, - server: { name: "opencode", version: "test" }, - capabilities: [...required, ...optional], - } -} - -function isRecord(value: unknown): value is Record { - return typeof value === "object" && value !== null && !Array.isArray(value) -} - -async function resolveDrive() { - if (process.env.DRIVE_REGISTRY_DIR && process.env.OPENCODE_DRIVE !== "1") { - const manifest = (await Bun.file( - `${process.env.DRIVE_REGISTRY_DIR}/${process.env.OPENCODE_DRIVE}.json`, - ).json()) as { - readonly endpoints: { readonly ui: string; readonly backend: string } - readonly recording?: { readonly timeline: string } - } - return manifest - } - return { - endpoints: { - ui: "ws://127.0.0.1:40900", - backend: "ws://127.0.0.1:40950", - }, - recording: { timeline: "/tmp/opencode-drive-fake/recording.jsonl" }, - } -} -import { appendFile } from "node:fs/promises" diff --git a/packages/drive/test/fixtures/hanging-script.ts b/packages/drive/test/fixtures/hanging-script.ts deleted file mode 100644 index 95581dcd639..00000000000 --- a/packages/drive/test/fixtures/hanging-script.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { defineScript } from "opencode-drive" -import * as Effect from "effect/Effect" - -export default defineScript({ - run: () => - Effect.gen(function* () { - yield* Effect.never - }), -}) diff --git a/packages/drive/test/fixtures/kill-primary-script.ts b/packages/drive/test/fixtures/kill-primary-script.ts deleted file mode 100644 index 22d704db0db..00000000000 --- a/packages/drive/test/fixtures/kill-primary-script.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { defineScript } from "opencode-drive" -import * as Effect from "effect/Effect" -import * as Exit from "effect/Exit" - -export default defineScript({ - run: ({ tui, ui }) => - Effect.gen(function* () { - yield* tui.close() - const closed = Exit.isFailure(yield* Effect.exit(ui.state())) - if (!closed) yield* Effect.fail(new Error("primary TUI remained connected after tui.close()")) - }), -}) diff --git a/packages/drive/test/fixtures/kill-server-script.ts b/packages/drive/test/fixtures/kill-server-script.ts deleted file mode 100644 index d5f6af494fb..00000000000 --- a/packages/drive/test/fixtures/kill-server-script.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { defineScript } from "opencode-drive" -import * as Effect from "effect/Effect" - -export default defineScript({ - launch: "manual", - run: ({ server, tools, tuis, artifacts }) => - Effect.gen(function* () { - yield* server.launch() - const firstServer = Number(yield* Effect.tryPromise(() => Bun.file(`${artifacts}/service.pid`).text())) - const [alice] = yield* Effect.all( - [tuis.launch("alice", { recording: true }), tuis.launch("bob", { recording: true })], - { concurrency: "unbounded" }, - ) - - yield* server.kill() - for (let attempt = 0; attempt < 100 && running(firstServer); attempt++) yield* Effect.sleep(10) - if (running(firstServer)) return yield* Effect.fail(new Error("the first server is still running")) - - yield* server.launch() - const secondServer = Number(yield* Effect.tryPromise(() => Bun.file(`${artifacts}/service.pid`).text())) - if (secondServer === firstServer) return yield* Effect.fail(new Error("the server was not relaunched")) - - const recording = alice.recording - if (recording === undefined) return yield* Effect.fail(new Error("alice recording was not configured")) - const aliceRecording = yield* recording.finish() - yield* alice.close() - const relaunchedAlice = yield* tuis.launch("alice") - yield* relaunchedAlice.close() - yield* tools.attach({ - tools: [ - { - name: "lookup", - description: "Look up a value", - inputSchema: { type: "object" }, - options: { codemode: false }, - }, - ], - }) - yield* server.kill() - - yield* Effect.tryPromise(() => - Bun.write( - `${artifacts}/kill-server-result.json`, - JSON.stringify({ firstServer, secondServer, aliceRecording }), - ), - ) - }), -}) - -function running(pid: number) { - try { - process.kill(pid, 0) - return true - } catch { - return false - } -} diff --git a/packages/drive/test/fixtures/manual-clients-script.ts b/packages/drive/test/fixtures/manual-clients-script.ts deleted file mode 100644 index 391cc9b49ae..00000000000 --- a/packages/drive/test/fixtures/manual-clients-script.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { defineScript } from "opencode-drive" -import * as Effect from "effect/Effect" - -export default defineScript({ - launch: "manual", - run: ({ ui, server, tuis, artifacts }) => - Effect.gen(function* () { - if (ui !== null) return yield* Effect.fail(new Error("manual scripts must not receive a default UI")) - const tuiBeforeServer = yield* Effect.matchEffect(tuis.launch("too-early"), { - onFailure: (error) => Effect.succeed(errorMessage(error)), - onSuccess: () => Effect.succeed("unexpected success"), - }) - const opencode = yield* server.launch() - const health = yield* opencode.health.get() - const duplicateServer = yield* Effect.matchEffect(server.launch(), { - onFailure: (error) => Effect.succeed(errorMessage(error)), - onSuccess: () => Effect.succeed("unexpected success"), - }) - const [alice, bob] = yield* Effect.all([tuis.launch("alice"), tuis.launch("bob")], { concurrency: "unbounded" }) - yield* alice.ui.submit("from alice") - yield* bob.ui.submit("from bob") - const [aliceMatches, bobMatches, aliceScreenshot, bobScreenshot, aliceFrame] = yield* Effect.all( - [ - alice.ui.matches("tui-alice"), - bob.ui.matches("tui-bob"), - alice.ui.screenshot("alice"), - bob.ui.screenshot("bob"), - alice.ui.capture(), - ], - { concurrency: "unbounded" }, - ) - yield* Effect.tryPromise(() => - Bun.write( - `${artifacts}/manual-clients.json`, - JSON.stringify({ - aliceMatches, - aliceFrame: { cols: aliceFrame.cols, rows: aliceFrame.rows }, - bobMatches, - apiHealthy: health.healthy, - tuiBeforeServer, - duplicateServer, - aliceScreenshot, - bobScreenshot, - }), - ), - ) - }), -}) - -function errorMessage(error: unknown) { - return error instanceof Error ? error.message : String(error) -} diff --git a/packages/drive/test/fixtures/prepared-git-script.ts b/packages/drive/test/fixtures/prepared-git-script.ts deleted file mode 100644 index 28df43b7b2b..00000000000 --- a/packages/drive/test/fixtures/prepared-git-script.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { join } from "node:path" -import { defineScript } from "opencode-drive" -import * as Effect from "effect/Effect" - -let setupGitError: string | undefined - -export default defineScript({ - launch: "manual", - setup: ({ fs }) => - Effect.gen(function* () { - setupGitError = yield* Effect.matchEffect(fs.writeFile(".GIT/config", "setup must not replace Git metadata\n"), { - onFailure: (error) => Effect.succeed(String(error)), - onSuccess: () => Effect.succeed(undefined), - }) - }), - run: ({ artifacts, fs }) => - Effect.gen(function* () { - const runGitError = yield* Effect.matchEffect( - fs.writeFile(".GIT/config", "run must not replace Git metadata\n"), - { - onFailure: (error) => Effect.succeed(String(error)), - onSuccess: () => Effect.succeed(undefined), - }, - ) - yield* Effect.tryPromise(() => - Bun.write( - join(artifacts, "prepared-git-result.json"), - `${JSON.stringify({ runGitError, setupGitError }, undefined, 2)}\n`, - ), - ) - }), -}) diff --git a/packages/drive/test/fixtures/restart-script.ts b/packages/drive/test/fixtures/restart-script.ts deleted file mode 100644 index cdc4497d137..00000000000 --- a/packages/drive/test/fixtures/restart-script.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { defineScript, Llm } from "opencode-drive" -import * as Effect from "effect/Effect" -import * as Stream from "effect/Stream" - -export default defineScript({ - run: ({ artifacts, llm, ui }) => - Effect.gen(function* () { - yield* llm.serve(() => Stream.fromEffect(Effect.sleep(500).pipe(Effect.as(Llm.text("late response"))))) - const file = `${artifacts}/script-runs.txt` - const screenshotFile = `${artifacts}/script-screenshots.txt` - const previous = yield* Effect.promise(() => - Bun.file(file) - .text() - .catch(() => ""), - ) - const screenshots = yield* Effect.promise(() => - Bun.file(screenshotFile) - .text() - .catch(() => ""), - ) - const screenshot = yield* ui.screenshot("restart-shared") - yield* Effect.tryPromise(() => Bun.write(screenshotFile, `${screenshots}${screenshot}\n`)) - yield* Effect.tryPromise(() => Bun.write(file, `${previous}run\n`)) - yield* Effect.never - }), -}) diff --git a/packages/drive/test/fixtures/script.ts b/packages/drive/test/fixtures/script.ts deleted file mode 100644 index 51cba946f0c..00000000000 --- a/packages/drive/test/fixtures/script.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { join } from "node:path" -import { defineScript, Llm } from "opencode-drive" -import * as Effect from "effect/Effect" - -export default defineScript({ - config: { - test: { declared: true }, - }, - tuiConfig: { - test: { declared: true }, - }, - project: { - git: true, - files: { - "src/seeded.ts": "export const seeded = true\n", - }, - }, - setup: ({ fs, config, tuiConfig }) => - Effect.gen(function* () { - config.autoupdate = false - config.test = { ...(config.test as Record), setup: true } - tuiConfig.test = { ...(tuiConfig.test as Record), setup: true } - yield* fs.writeFile("setup-seeded.txt", "included in baseline\n") - }), - - run: ({ artifacts, fs, llm, ui }) => - Effect.gen(function* () { - const gitWriteError = yield* Effect.matchEffect(fs.writeFile(".GIT/config", "no"), { - onFailure: (error) => Effect.succeed(String(error)), - onSuccess: () => Effect.succeed(undefined), - }) - yield* ui.waitFor((state) => Effect.succeed(state.focused.editor)) - const editor = yield* ui.getElement(1) - yield* ui.focus(editor) - yield* ui.click(editor) - yield* ui.submit("script-text") - yield* llm.send(Llm.text("script response", { delay: 0, chunkSize: 3 })) - const matches = yield* ui.matches("script-text") - yield* ui.waitFor("script-text") - yield* ui.screenshot("script-shot") - const state = yield* ui.state() - const frame = yield* ui.capture() - yield* Effect.tryPromise(() => - Bun.write( - join(artifacts, "script-result.json"), - `${JSON.stringify({ focused: state.focused, frame: { cols: frame.cols, rows: frame.rows }, gitWriteError, matches }, undefined, 2)}\n`, - ), - ) - }), -}) diff --git a/packages/drive/test/fixtures/serve-script.ts b/packages/drive/test/fixtures/serve-script.ts deleted file mode 100644 index bba8e6e3200..00000000000 --- a/packages/drive/test/fixtures/serve-script.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { defineScript, Llm } from "opencode-drive" -import * as Deferred from "effect/Deferred" -import * as Effect from "effect/Effect" -import * as Stream from "effect/Stream" - -export default defineScript({ - run: ({ llm }) => - Effect.gen(function* () { - const completed = yield* Deferred.make() - yield* llm.serve(() => - Stream.make( - Llm.reasoning("thinking", { delay: 0, chunkSize: 2 }), - Llm.pause(1), - Llm.text("served response"), - Llm.finish("length"), - ).pipe(Stream.onEnd(Deferred.succeed(completed, undefined))), - ) - yield* Deferred.await(completed) - }), -}) diff --git a/packages/drive/test/fixtures/source-script.ts b/packages/drive/test/fixtures/source-script.ts deleted file mode 100644 index 24331bd2887..00000000000 --- a/packages/drive/test/fixtures/source-script.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { defineScript } from "../../src/index.js" -import * as Effect from "effect/Effect" - -export default defineScript({ - run: () => Effect.void, -}) diff --git a/packages/drive/test/fixtures/title-script.ts b/packages/drive/test/fixtures/title-script.ts deleted file mode 100644 index 17d33749f88..00000000000 --- a/packages/drive/test/fixtures/title-script.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { defineScript, Llm } from "opencode-drive" -import * as Effect from "effect/Effect" - -export default defineScript({ - launch: "manual", - run: ({ server, llm }) => - Effect.gen(function* () { - yield* llm.title(() => Effect.succeed("Custom title")) - yield* server.launch() - yield* llm.send(Llm.text("Normal response")) - }), -}) diff --git a/packages/drive/test/fixtures/tool-control-script.ts b/packages/drive/test/fixtures/tool-control-script.ts deleted file mode 100644 index 6265f8e6201..00000000000 --- a/packages/drive/test/fixtures/tool-control-script.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { defineScript } from "opencode-drive" -import * as Effect from "effect/Effect" -import * as Fiber from "effect/Fiber" - -export default defineScript({ - tools: ["shell"], - run: ({ tools, artifacts }) => - Effect.gen(function* () { - const shells = yield* tools.control("shell") - const options = yield* Effect.tryPromise(async () => { - const config: unknown = await Bun.file(`${artifacts}/files/.opencode/opencode.jsonc`).json() - if (typeof config !== "object" || config === null || !("plugins" in config)) - throw new Error("script config has no plugins") - const plugins = config.plugins - if (!Array.isArray(plugins)) throw new Error("script plugins are not an array") - const plugin = plugins.find((value) => typeof value === "object" && value !== null && "options" in value) - if (typeof plugin !== "object" || plugin === null || !("options" in plugin)) - throw new Error("Drive tool plugin is missing") - const value = plugin.options - if ( - typeof value !== "object" || - value === null || - !("endpoint" in value) || - typeof value.endpoint !== "string" || - !("token" in value) || - typeof value.token !== "string" - ) - throw new Error("Drive tool plugin options are invalid") - return { endpoint: value.endpoint, token: value.token } - }) - const response = yield* Effect.tryPromise((signal) => - fetch(`${options.endpoint}/execute/shell`, { - method: "POST", - headers: { - authorization: `Bearer ${options.token}`, - "content-type": "application/json", - }, - body: JSON.stringify({ - input: { command: "controlled from script" }, - context: { callID: "call_script_control" }, - }), - signal, - }).then((value) => value.text()), - ).pipe(Effect.forkScoped) - const shell = yield* shells.take("call_script_control") - yield* shell.progress("script progress\n") - yield* shell.succeed({ output: "script success\n", exit: 0 }) - const events = yield* Fiber.join(response) - yield* Effect.promise(() => Bun.write(`${artifacts}/tool-control-events.jsonl`, events)) - }), -}) diff --git a/packages/drive/test/fixtures/tui-options-script.ts b/packages/drive/test/fixtures/tui-options-script.ts deleted file mode 100644 index a2f44e0fb30..00000000000 --- a/packages/drive/test/fixtures/tui-options-script.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { defineScript } from "opencode-drive" -import * as Effect from "effect/Effect" - -export default defineScript({ - tui: { recording: true, viewport: { cols: 90, rows: 30 } }, - run: ({ artifacts, tui, tuis }) => - Effect.gen(function* () { - const secondary = yield* tuis.launch() - yield* Effect.tryPromise(() => - Bun.write( - `${artifacts}/tui-options.json`, - `${JSON.stringify({ - primaryRecording: tui.recording !== undefined, - secondaryRecording: secondary.recording !== undefined, - })}\n`, - ), - ) - }), -}) diff --git a/packages/drive/test/frame.test.ts b/packages/drive/test/frame.test.ts deleted file mode 100644 index 1df0263fdad..00000000000 --- a/packages/drive/test/frame.test.ts +++ /dev/null @@ -1,73 +0,0 @@ -import { describe, expect, it } from "vitest" -import { BlockGlyphs, CellHeight, CellWidth, TextStyle, drawBlockGlyph } from "../src/frame/index.js" - -describe("frame geometry", () => { - it("draws exactly the geometric block and bar primitives", () => { - expect(Object.keys(BlockGlyphs).sort()).toEqual(["█", "▀", "▄", "┃", "╹"].sort()) - }) - - it("keeps every glyph rectangle inside one cell", () => { - for (const glyph of Object.values(BlockGlyphs)) { - expect(glyph.x).toBeGreaterThanOrEqual(0) - expect(glyph.x + glyph.width).toBeLessThanOrEqual(CellWidth) - expect(glyph.y + glyph.height).toBeLessThanOrEqual(CellHeight) - } - }) - - it("stretches solid blocks across cells but keeps bars centered", () => { - const rects: Array = [] - const context = { - fillRect: (x: number, y: number, width: number, height: number) => void rects.push([x, y, width, height]), - } - expect(drawBlockGlyph(context, "█", 0, 0, 2)).toBe(true) - expect(drawBlockGlyph(context, "┃", 0, 0, 2)).toBe(true) - expect(drawBlockGlyph(context, "a", 0, 0)).toBe(false) - expect(rects).toEqual([ - [0, 0, 2 * CellWidth, CellHeight], - [CellWidth / 2 - 1, 0, 2, CellHeight], - ]) - }) - - it("draws light box borders as connected pixel geometry", () => { - const rects: Array = [] - const context = { - fillRect: (x: number, y: number, width: number, height: number) => void rects.push([x, y, width, height]), - } - expect(drawBlockGlyph(context, "│", 0, 0)).toBe(true) - expect(drawBlockGlyph(context, "─", CellWidth, 0)).toBe(true) - expect(drawBlockGlyph(context, "╭", CellWidth * 2, 0)).toBe(true) - expect(drawBlockGlyph(context, "┼", CellWidth * 3, 0)).toBe(true) - expect(rects.length).toBe(7) - expect( - rects.every( - ([x, y, width, height]) => - Number.isInteger(x) && Number.isInteger(y) && Number.isInteger(width) && Number.isInteger(height), - ), - ).toBe(true) - const pixels = rects.flatMap(([x, y, width, height]) => - Array.from({ length: width * height }, (_, index) => `${x + (index % width)},${y + Math.floor(index / width)}`), - ) - expect(new Set(pixels).size).toBe(pixels.length) - }) - - it("draws diagonal quadrant blocks edge-to-edge", () => { - const rects: Array = [] - const context = { - fillRect: (x: number, y: number, width: number, height: number) => void rects.push([x, y, width, height]), - } - expect(drawBlockGlyph(context, "▚", 0, 0)).toBe(true) - expect(drawBlockGlyph(context, "▞", CellWidth, 0)).toBe(true) - expect(rects).toEqual([ - [0, 0, CellWidth / 2, CellHeight / 2], - [CellWidth / 2, CellHeight / 2, CellWidth / 2, CellHeight / 2], - [CellWidth + CellWidth / 2, 0, CellWidth / 2, CellHeight / 2], - [CellWidth, CellHeight / 2, CellWidth / 2, CellHeight / 2], - ]) - }) - - it("uses distinct attribute bits", () => { - const bits = Object.values(TextStyle) - expect(new Set(bits).size).toBe(bits.length) - for (const bit of bits) expect(bit & (bit - 1)).toBe(0) - }) -}) diff --git a/packages/drive/test/instance/config.test.ts b/packages/drive/test/instance/config.test.ts deleted file mode 100644 index cd6d187fe82..00000000000 --- a/packages/drive/test/instance/config.test.ts +++ /dev/null @@ -1,162 +0,0 @@ -import { afterEach, describe, expect, test } from "vitest" -import { rm } from "node:fs/promises" -import { join } from "node:path" -import * as Effect from "effect/Effect" -import { initializeInstance, prepareInstanceProject } from "../../src/instance/instance.js" - -const artifacts: string[] = [] - -afterEach(async () => { - await Promise.all(artifacts.splice(0).map((path) => rm(path, { recursive: true, force: true }))) -}) - -describe("instance configuration", () => { - test("initializes the simulation provider with the current OpenCode provider shape", async () => { - const root = await initializeInstance() - artifacts.push(root) - - expect(Bun.JSONC.parse(await Bun.file(join(root, "files", ".opencode", "opencode.jsonc")).text())).toMatchObject({ - model: "simulation/gpt-sim-model", - providers: { - simulation: { - package: "@opencode-ai/ai/providers/openai/chat", - settings: { apiKey: "sim-key" }, - }, - }, - }) - }) - - test("merges JSONC fixtures, replaces arrays, applies setup last, and commits normalized files", async () => { - const root = await initializeInstance() - artifacts.push(root) - await Effect.runPromise( - prepareInstanceProject({ - artifacts: root, - project: { - git: true, - files: { - ".opencode/opencode.jsonc": `{ - // fixture values are the merge base - "nested": { "fixture": true, "winner": "fixture" }, - "items": ["fixture"], - }`, - ".opencode/tui.jsonc": `{ - "theme": { "fixture": true }, - "items": ["fixture"], - }`, - }, - }, - config: { - nested: { declared: true, winner: "declared" }, - items: ["declared"], - }, - tui: { - theme: { declared: true }, - items: ["declared"], - }, - setup({ config, tuiConfig }) { - return Effect.sync(() => { - config.nested = { - ...(config.nested as Record), - winner: "setup", - } - tuiConfig.items = ["setup"] - }) - }, - }), - ) - - const files = join(root, "files") - const configText = await Bun.file(join(files, ".opencode", "opencode.jsonc")).text() - const tuiText = await Bun.file(join(files, ".opencode", "tui.jsonc")).text() - expect(JSON.parse(configText)).toEqual({ - nested: { fixture: true, declared: true, winner: "setup" }, - items: ["declared"], - }) - expect(JSON.parse(tuiText)).toEqual({ - theme: { fixture: true, declared: true }, - items: ["setup"], - }) - expect(configText).not.toContain("//") - expect(await git(files, ["status", "--porcelain"])).toBe("") - expect(await git(files, ["show", "HEAD:.opencode/tui.jsonc"])).toBe(tuiText) - }) - - test("rejects invalid JSONC configuration", async () => { - const root = await initializeInstance() - artifacts.push(root) - await expect( - Effect.runPromise( - prepareInstanceProject({ - artifacts: root, - project: { - files: { ".opencode/tui.jsonc": "{ invalid" }, - }, - }), - ), - ).rejects.toThrow("invalid .opencode/tui.jsonc") - }) - - test("does not let setup mutate declarative configuration inputs", async () => { - const root = await initializeInstance() - artifacts.push(root) - const config = { nested: { value: "declared" }, items: ["declared"] } - const tui = { keybinds: { app_exit: "ctrl+q" } } - - await Effect.runPromise( - prepareInstanceProject({ - artifacts: root, - config, - tui, - setup({ config, tuiConfig }) { - return Effect.sync(() => { - const nested = config.nested as Record - const items = config.items as Array - const keybinds = tuiConfig.keybinds as Record - nested.value = "setup" - items.push("setup") - keybinds.app_exit = "ctrl+x" - }) - }, - }), - ) - - expect(config).toEqual({ - nested: { value: "declared" }, - items: ["declared"], - }) - expect(tui).toEqual({ keybinds: { app_exit: "ctrl+q" } }) - }) - - test("interrupts setup with project preparation", async () => { - const root = await initializeInstance() - artifacts.push(root) - const started = Promise.withResolvers() - let finalized = false - const controller = new AbortController() - const prepared = Effect.runPromise( - prepareInstanceProject({ - artifacts: root, - setup: () => - Effect.sync(() => started.resolve()).pipe( - Effect.andThen(Effect.never), - Effect.ensuring( - Effect.sync(() => { - finalized = true - }), - ), - ), - }), - { signal: controller.signal }, - ) - - await started.promise - controller.abort() - await expect(prepared).rejects.toThrow() - expect(finalized).toBe(true) - }) -}) - -async function git(cwd: string, args: ReadonlyArray) { - return Bun.$`git ${args}`.cwd(cwd).text() -} diff --git a/packages/drive/test/instance/dev.test.ts b/packages/drive/test/instance/dev.test.ts deleted file mode 100644 index 31672c0e052..00000000000 --- a/packages/drive/test/instance/dev.test.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { afterEach, expect, test } from "vitest" -import { mkdir, mkdtemp, rm } from "node:fs/promises" -import { tmpdir } from "node:os" -import { join } from "node:path" -import * as Effect from "effect/Effect" -import { prepareDev } from "../../src/instance/dev.js" - -const directories: string[] = [] - -afterEach(async () => { - await Promise.all(directories.splice(0).map((path) => rm(path, { recursive: true, force: true }))) -}) - -test("uses standalone mode and inheritable preloads for V2 development checkouts", async () => { - const root = await mkdtemp(join(tmpdir(), "opencode-drive-dev-")) - const artifacts = await mkdtemp(join(tmpdir(), "opencode-drive-artifacts-")) - directories.push(root, artifacts) - await mkdir(join(root, "packages", "cli", "src", "services"), { recursive: true }) - await mkdir(join(root, "packages", "tui", "node_modules", "@opentui", "solid"), { recursive: true }) - await Promise.all([ - Bun.write(join(root, "packages", "cli", "src", "index.ts"), ""), - Bun.write(join(root, "packages", "cli", "src", "services", "standalone.ts"), ""), - Bun.write(join(root, "packages", "tui", "node_modules", "@opentui", "solid", "package.json"), "{}"), - ]) - - const result = await Effect.runPromise(prepareDev(artifacts, root)) - - expect(result.command.at(-1)).toBe("--standalone") - expect(result.scriptedCommand.at(-1)).toBe(join(root, "packages", "cli", "src", "index.ts")) - expect(result.preloads).toContain("--conditions=browser") - expect(result.preloads).toContain( - `--preload=${join(root, "packages", "tui", "node_modules", "@opentui", "solid", "scripts", "preload.js")}`, - ) -}) diff --git a/packages/drive/test/instance/process.test.ts b/packages/drive/test/instance/process.test.ts deleted file mode 100644 index a9ace32b1c0..00000000000 --- a/packages/drive/test/instance/process.test.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { NodeServices } from "@effect/platform-node" -import { expect, it } from "@effect/vitest" -import { Effect, Exit, Option, Scope } from "effect" -import * as Process from "../../src/instance/process.js" - -it.live("does not let an interrupted waiter poison process completion", () => - Effect.scoped( - Effect.gen(function* () { - const process = yield* Process.spawn([ - globalThis.process.execPath, - "-e", - "setTimeout(() => process.exit(0), 100)", - ]) - - const early = yield* process.exitCode.pipe(Effect.timeoutOption(5)) - expect(Option.isNone(early)).toBe(true) - expect(yield* process.exitCode).toBe(0) - }), - ).pipe(Effect.provide(NodeServices.layer)), -) - -it.live("collects finite command output and status", () => - Process.run([globalThis.process.execPath, "-e", 'console.log("stdout"); console.error("stderr")']).pipe( - Effect.provide(NodeServices.layer), - Effect.tap((output) => - Effect.sync(() => { - expect(output).toEqual({ - status: 0, - stdout: "stdout\n", - stderr: "stderr\n", - }) - }), - ), - ), -) - -it.live("keeps exit observation alive after detachment", () => - Effect.gen(function* () { - const scope = yield* Scope.make() - const process = yield* Process.spawn([ - globalThis.process.execPath, - "-e", - "setTimeout(() => process.exit(7), 100)", - ]).pipe(Scope.provide(scope)) - - yield* process.detach - yield* Scope.close(scope, Exit.void) - expect(yield* process.exitCode).toBe(7) - }).pipe(Effect.provide(NodeServices.layer)), -) diff --git a/packages/drive/test/instance/runtime.test.ts b/packages/drive/test/instance/runtime.test.ts deleted file mode 100644 index 1a61e4e2107..00000000000 --- a/packages/drive/test/instance/runtime.test.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { rm } from "node:fs/promises" -import { resolve } from "node:path" -import { NodeServices } from "@effect/platform-node" -import { expect, it } from "@effect/vitest" -import { ConfigProvider, Effect, Exit, Fiber } from "effect" -import { initializeInstance } from "../../src/instance/instance.js" -import * as OpenCodeInstance from "../../src/instance/runtime.js" - -const fakeOpenCode = [process.execPath, resolve("test", "fixtures", "fake-opencode.ts")] - -it.live("stops a TUI while its readiness check is pending", () => - Effect.scoped( - Effect.gen(function* () { - const artifacts = yield* Effect.promise(() => initializeInstance()) - yield* Effect.addFinalizer(() => Effect.promise(() => rm(artifacts, { recursive: true, force: true }))) - const instance = yield* OpenCodeInstance.make({ - artifacts, - name: "pending-client-test", - scripted: true, - command: [...fakeOpenCode, "no-ui"], - }) - - yield* instance.launchServer - const launch = yield* instance.launchTui("pending").pipe(Effect.exit, Effect.forkChild) - yield* Effect.sleep(100) - - const started = Date.now() - yield* instance.stop - expect(Date.now() - started).toBeLessThan(5_000) - expect(Exit.isFailure(yield* Fiber.join(launch))).toBe(true) - }), - ).pipe(Effect.provide(NodeServices.layer)), -) - -it.live("reads the database target from Effect config", () => - Effect.scoped( - Effect.gen(function* () { - const artifacts = yield* Effect.promise(() => initializeInstance()) - yield* Effect.addFinalizer(() => Effect.promise(() => rm(artifacts, { recursive: true, force: true }))) - const instance = yield* OpenCodeInstance.make({ - artifacts, - name: "database-config-test", - scripted: true, - command: fakeOpenCode, - }) - yield* Effect.addFinalizer(() => instance.stop) - - yield* instance.launchServer - expect(yield* Effect.promise(() => Bun.file(`${artifacts}/service-db.txt`).text())).toBe("restart.sqlite") - }), - ).pipe( - Effect.provide(ConfigProvider.layer(ConfigProvider.fromUnknown({ OPENCODE_DRIVE_DB: "restart.sqlite" }))), - Effect.provide(NodeServices.layer), - ), -) diff --git a/packages/drive/test/llm.test.ts b/packages/drive/test/llm.test.ts deleted file mode 100644 index 1f82fd77f4a..00000000000 --- a/packages/drive/test/llm.test.ts +++ /dev/null @@ -1,122 +0,0 @@ -import { describe, expect, test } from "vitest" -import { Schema } from "effect" -import { Llm } from "../src/index.js" - -describe("Llm", () => { - test("constructs serializable output values", () => { - expect(Llm.text("hello", { delay: 0, chunkSize: 3 })).toEqual({ - type: "text", - text: "hello", - options: { delay: 0, chunkSize: 3 }, - }) - expect(Llm.reasoning("thinking")).toEqual({ - type: "reasoning", - text: "thinking", - }) - expect(Llm.pause(20)).toEqual({ type: "pause", milliseconds: 20 }) - expect( - Llm.toolCall({ - index: 0, - id: "call_1", - name: "read", - input: { path: "src/example.ts" }, - }), - ).toEqual({ - type: "toolCall", - index: 0, - id: "call_1", - name: "read", - input: { path: "src/example.ts" }, - }) - expect( - Llm.toolCall( - { - index: 1, - id: "call_2", - name: "patch", - input: { patchText: "*** Begin Patch\n*** End Patch" }, - }, - { delay: 20, chunkSize: 10 }, - ), - ).toEqual({ - type: "toolCall", - index: 1, - id: "call_2", - name: "patch", - input: { patchText: "*** Begin Patch\n*** End Patch" }, - options: { delay: 20, chunkSize: 10 }, - }) - expect(Llm.raw({ usage: { inputTokens: 10 } })).toEqual({ - type: "raw", - chunk: { usage: { inputTokens: 10 } }, - }) - expect(Llm.finish("tool-calls")).toEqual({ - type: "finish", - reason: "tool-calls", - }) - expect(Llm.disconnect()).toEqual({ type: "disconnect" }) - }) - - test("decodes raw schema-compatible outputs", () => { - const decode = Schema.decodeUnknownSync(Llm.Output) - - expect(decode({ type: "text", text: "raw" })).toEqual({ - type: "text", - text: "raw", - }) - expect( - decode({ - type: "toolCall", - index: 0, - id: "call_2", - name: "write", - input: { path: "notes.txt", contents: "hello" }, - }), - ).toEqual({ - type: "toolCall", - index: 0, - id: "call_2", - name: "write", - input: { path: "notes.txt", contents: "hello" }, - }) - }) - - test("rejects invalid output values", () => { - const decode = Schema.decodeUnknownSync(Llm.Output) - - expect(() => Llm.pause(-1)).toThrow() - expect(() => Llm.pause(Number.POSITIVE_INFINITY)).toThrow() - expect(() => Llm.text("hello", { delay: -1 })).toThrow() - expect(() => Llm.text("hello", { chunkSize: 0 })).toThrow() - expect(() => Llm.text("hello", { chunkSize: 1.5 })).toThrow() - expect(() => Llm.toolCall({ index: -1, id: "call_3", name: "read", input: {} })).toThrow() - expect(() => Llm.toolCall({ index: 1.5, id: "call_3", name: "read", input: {} })).toThrow() - expect(() => Llm.toolCall({ index: 0, id: "call_3", name: "read", input: {} }, { chunkSize: 0 })).toThrow() - expect(() => - Llm.toolCall({ - index: Number.NaN, - id: "call_3", - name: "read", - input: {}, - }), - ).toThrow() - expect(() => - Llm.toolCall({ - index: Number.POSITIVE_INFINITY, - id: "call_3", - name: "read", - input: {}, - }), - ).toThrow() - expect(() => decode({ type: "finish", reason: "unknown" })).toThrow() - expect(() => - decode({ - type: "toolCall", - index: "0", - id: "call_3", - name: "read", - input: {}, - }), - ).toThrow() - }) -}) diff --git a/packages/drive/test/manual/tui-regressions/README.md b/packages/drive/test/manual/tui-regressions/README.md deleted file mode 100644 index 20fecd330de..00000000000 --- a/packages/drive/test/manual/tui-regressions/README.md +++ /dev/null @@ -1,104 +0,0 @@ -# TUI regression probes - -These scripts exercise real OpenCode TUI behavior against a compatible local checkout. They are deliberately excluded from the normal package test command: some are diagnostic probes for timing-sensitive bugs, and some encode desired behavior for known-open V2 issues and currently fail. - -From the repository root, set `OPENCODE_DEV` to the checkout under test: - -```sh -bun run --cwd packages/drive drive check test/manual/tui-regressions/interaction-lifecycle.ts -bun run --cwd packages/drive drive start --name tui-interaction-lifecycle \ - --script test/manual/tui-regressions/interaction-lifecycle.ts \ - --dev "$OPENCODE_DEV" -``` - -The interaction probe asserts that: - -- A submitted message is visible before a delayed model response begins. -- An active streaming response reaches the interrupted state after Escape. - -## Initial message hydration - -[`anomalyco/opencode#35988`](https://github.com/anomalyco/opencode/issues/35988) reports that a new Session can permanently lose its first user row during pending/history hydration while retaining the assistant response. The black-box probe creates fresh TUIs and checks both transcript rows after the response: - -```sh -OPENCODE_DRIVE_ATTEMPTS=20 bun run --cwd packages/drive drive start \ - --name tui-initial-message \ - --script test/manual/tui-regressions/initial-message-hydration.ts \ - --dev "$OPENCODE_DEV" -``` - -The natural race is uncommon. During diagnosis, a valid empty history snapshot was gated across input promotion; that deterministic Drive run failed against the pre-fix parent and passed against the fix in OpenCode PR #36433. The checked-in probe does not require test-only OpenCode instrumentation, so use more attempts when trying to reproduce naturally. - -The restart probe opts into a file-backed database so the replacement service can recover the same durable Session: - -```sh -bun run --cwd packages/drive drive check test/manual/tui-regressions/server-restart.ts -OPENCODE_DRIVE_DB=restart.sqlite \ - bun run --cwd packages/drive drive start --name tui-server-restart \ - --script test/manual/tui-regressions/server-restart.ts \ - --dev "$OPENCODE_DEV" -``` - -Relative database paths resolve under the isolated run's OpenCode data directory. The probe requires `OPENCODE_DRIVE_DB`, restarts the service while retaining the TUI, and asserts that the previous transcript rehydrates and accepts another prompt. Without the override Drive intentionally uses `:memory:`, so session loss across process replacement is expected. - -## Pending form restart - -[`anomalyco/opencode#36585`](https://github.com/anomalyco/opencode/issues/36585) reports that a form retained by the TUI becomes unanswerable after the replacement server loses its process-local form cache: - -```sh -bun run --cwd packages/drive drive check test/manual/tui-regressions/pending-form-restart.ts -bun run --cwd packages/drive drive start --name tui-pending-form-restart \ - --script test/manual/tui-regressions/pending-form-restart.ts \ - --dev "$OPENCODE_DEV" -``` - -The desired invariant is that the form either remains answerable or is dismissed as stale. If a retained form accepts local input but submission returns `Form not found`, the probe fails and preserves `stale-form.frame.json`. Current V2 dismisses the stale form and passes this probe. - -## Reconnect outage - -[`anomalyco/opencode#36688`](https://github.com/anomalyco/opencode/issues/36688) reports that a TUI exhausts its reconnect budget and crashes during a realistic post-update service outage: - -```sh -OPENCODE_DRIVE_OUTAGE_MS=20000 bun run --cwd packages/drive drive start \ - --name tui-reconnect-outage \ - --script test/manual/tui-regressions/reconnect-outage.ts \ - --dev "$OPENCODE_DEV" -``` - -The desired invariant is that the TUI remains alive and returns to an actionable composer after the service relaunches. Current V2 passes with both 20-second and 60-second isolated outages. Increase the outage to model slower update election and cold location startup. - -## Seeded lifecycle simulation - -`lifecycle-properties.ts` uses the live OpenCode event stream and a queue-backed simulated response to select deterministic mid-flight actions. Submit, queued submit, text emission, reasoning emission, tool-input streaming, tool execution, completion, interruption, and provider disconnect are separate model transitions. A failure preserves its seed, action trace, model state, recent session events, and terminal frame in `state-machine-failure.json`: - -```sh -OPENCODE_DRIVE_SEED=42 OPENCODE_DRIVE_STEPS=20 \ - bun run --cwd packages/drive drive start --name tui-lifecycle-properties \ - --script test/manual/tui-regressions/lifecycle-properties.ts \ - --dev "$OPENCODE_DEV" -``` - -Re-run a failure with the same seed and step count. Transition preconditions constrain actions to valid idle, pending, streaming, tool-input, and running-tool states. Tool input is chunked so interruption can occur before parsing completes; advancing the tool response dispatches a blocking question tool so interruption can also occur during execution. Interrupted tool parts must settle with an aborted error in the server projection. A queued prompt must have exactly one owner across pending input and projected history. Completion can promote it into the next model step, interruption can leave it awaiting resume, and provider failure can promote it into a replacement execution. Shared invariants also require the latest prompt and settled output to remain visible, the server projection to retain the active prompt, the composer to become actionable after terminal execution, and internal transport defects to stay out of the UI. - -Interruption uses the existing `llm.pending` simulation capability. If OpenCode rejects a response write after terminating the invocation, Drive confirms that the invocation is no longer pending and settles the response as externally terminated. If the invocation remains pending or the query fails, Drive preserves the original write failure. - -## Multi-tool interleavings - -`multi-tool-interleavings.ts` launches shell, question, read, and glob calls in -one assistant step. Drive controls the declared shell by call ID from `run`, -holding it open while three permissions coexist, -approves the question so its form is hidden behind the remaining read and glob -permissions, and lets glob complete while read permission stays visible. It -then rejects read, answers the form, and releases shell last. Permission -rejection interrupts the whole assistant step after sibling tools settle, so -the probe submits a recovery prompt. It verifies mixed backend states, -settlement order, final projected tool states, post-interruption reuse, and -preserves terminal frames for both prompt-priority states: - -```sh -bun run --cwd packages/drive drive check \ - test/manual/tui-regressions/multi-tool-interleavings.ts -bun run --cwd packages/drive drive start --name tui-multi-tool-interleavings \ - --script test/manual/tui-regressions/multi-tool-interleavings.ts \ - --dev "$OPENCODE_DEV" -``` diff --git a/packages/drive/test/manual/tui-regressions/initial-message-hydration.ts b/packages/drive/test/manual/tui-regressions/initial-message-hydration.ts deleted file mode 100644 index 6965b1eb409..00000000000 --- a/packages/drive/test/manual/tui-regressions/initial-message-hydration.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { defineScript, Llm } from "../../../src/index.js" -import { Effect } from "effect" - -const attempts = Number(process.env.OPENCODE_DRIVE_ATTEMPTS ?? 20) - -export default defineScript({ - launch: "manual", - run: ({ server, tuis, llm, artifacts }) => - Effect.gen(function* () { - yield* server.launch() - for (let index = 0; index < attempts; index++) { - const prompt = `initial-user-message-${index}` - const response = `assistant-response-${index}` - yield* llm.queue(Llm.text(response, { delay: 0, chunkSize: 100 })) - const tui = yield* tuis.launch(`initial-message-${index}`) - yield* tui.ui.submit(prompt) - yield* tui.ui.waitFor(response, { timeout: 10_000 }) - if (!(yield* tui.ui.matches(prompt))) { - const frame = yield* tui.ui.capture() - yield* Effect.tryPromise(() => - Bun.write(`${artifacts}/missing-initial-message.frame.json`, JSON.stringify(frame, null, 2)), - ) - return yield* Effect.fail(new Error(`initial message disappeared on attempt ${index + 1}`)) - } - yield* tui.close() - } - yield* server.kill() - console.log(JSON.stringify({ attempts })) - }), -}) diff --git a/packages/drive/test/manual/tui-regressions/interaction-lifecycle.ts b/packages/drive/test/manual/tui-regressions/interaction-lifecycle.ts deleted file mode 100644 index 4755119c832..00000000000 --- a/packages/drive/test/manual/tui-regressions/interaction-lifecycle.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { defineScript, Llm } from "../../../src/index.js" -import { Effect } from "effect" - -const prompt = "submitted-message-must-render-before-the-model-responds" -const response = "delayed-model-response-arrived" - -export default defineScript({ - run: ({ ui, llm }) => - Effect.gen(function* () { - yield* llm.queue(Llm.pause(1_000), Llm.text(response)) - const started = performance.now() - yield* ui.submit(prompt) - const submittedIn = performance.now() - started - - if (!(yield* ui.matches(prompt))) return yield* Effect.fail(new Error("submitted message was not visible")) - if (yield* ui.matches(response)) - return yield* Effect.fail(new Error("model response arrived before the submit assertion")) - - yield* ui.waitFor(response, { timeout: 5_000 }) - - yield* llm.queue(Llm.text("interrupt-me-now"), Llm.pause(30_000)) - yield* ui.submit("start-a-response-that-will-be-interrupted") - yield* ui.waitFor("interrupt-me-now", { timeout: 5_000 }) - yield* ui.press("escape") - yield* ui.press("escape") - yield* ui.waitFor("interrupted", { timeout: 5_000 }) - - console.log(JSON.stringify({ submittedIn })) - }), -}) diff --git a/packages/drive/test/manual/tui-regressions/lifecycle-properties.ts b/packages/drive/test/manual/tui-regressions/lifecycle-properties.ts deleted file mode 100644 index 4b1acda5157..00000000000 --- a/packages/drive/test/manual/tui-regressions/lifecycle-properties.ts +++ /dev/null @@ -1,616 +0,0 @@ -import { defineScript, Llm } from "../../../src/index.js" -import type { OpenCode } from "../../../src/index.js" -import { Deferred, Effect, Queue, Stream } from "effect" -import { run } from "./state-machine.js" - -const seed = readInteger("OPENCODE_DRIVE_SEED", 1, Number.MAX_SAFE_INTEGER) -const steps = readInteger("OPENCODE_DRIVE_STEPS", 12, 1_000) - -interface RecordedEvent { - readonly index: number - readonly type: string - readonly sessionID?: unknown - readonly data: unknown -} - -type Model = - | { - readonly phase: "idle" - readonly sessionID?: SessionID - readonly prompt?: string - readonly output?: string - } - | { - readonly phase: "pending" - readonly sessionID: SessionID - readonly prompt: string - readonly output?: string - readonly pendingPrompt: string - } - | { - readonly phase: "streaming" - readonly sessionID: SessionID - readonly prompt: string - readonly output?: string - readonly reasoning?: string - readonly queuedPrompt?: string - readonly tool?: { - readonly callID: string - readonly question: string - readonly phase: "input" | "running" - readonly startedAfter: number - } - } - -type SessionID = Effect.Success>["data"][number]["id"] - -interface ResponseControl { - readonly id: string - readonly output: Queue.Queue - readonly ended: Deferred.Deferred -} - -export default defineScript({ - run: ({ ui, llm, opencode, artifacts }) => - Effect.scoped( - Effect.gen(function* () { - const responses = yield* Queue.unbounded() - const eventQueue = yield* Queue.unbounded() - const events: Array = [] - let activeResponse: ResponseControl | undefined - let eventSequence = 0 - - yield* llm.serve((request) => - Stream.unwrap( - Effect.gen(function* () { - const output = yield* Queue.unbounded() - const ended = yield* Deferred.make() - yield* Queue.offer(responses, { id: request.id, output, ended }) - return Stream.fromQueue(output).pipe( - Stream.takeUntil((item) => item.type === "finish" || item.type === "disconnect"), - Stream.ensuring(Deferred.succeed(ended, undefined).pipe(Effect.asVoid)), - ) - }), - ), - ) - yield* opencode.event.subscribe().pipe( - Stream.runForEach((event) => { - const recorded: RecordedEvent = { - index: eventSequence++, - type: event.type, - ...(event.data !== null && typeof event.data === "object" && "sessionID" in event.data - ? { sessionID: event.data.sessionID } - : {}), - data: event.data, - } - events.push(recorded) - if (events.length > 100) events.shift() - return Queue.offer(eventQueue, recorded).pipe(Effect.asVoid) - }), - Effect.forkScoped, - ) - - const currentSession = Effect.fn("LifecycleProperties.currentSession")(function* () { - const sessions = yield* opencode.session.list({ limit: 1, order: "desc" }) - const sessionID = sessions.data[0]?.id - if (sessionID === undefined) return yield* Effect.fail(new Error("no current session")) - return sessionID - }) - - const waitForEvent = Effect.fn("LifecycleProperties.waitForEvent")( - function* (type: string, sessionID: SessionID | undefined, after: number) { - while (true) { - const event = yield* Queue.take(eventQueue) - if ( - event.index > after && - event.type === type && - (sessionID === undefined || event.sessionID === sessionID) - ) - return event - } - }, - (effect, type) => - effect.pipe( - Effect.timeoutOrElse({ - duration: 10_000, - orElse: () => Effect.fail(new Error(`timed out waiting for ${type}`)), - }), - ), - ) - - const waitForResponse = Effect.fn("LifecycleProperties.waitForResponse")( - function* () { - if (activeResponse !== undefined) - return yield* Effect.fail(new Error(`LLM response ${activeResponse.id} is already active`)) - while (true) { - const response = yield* Queue.take(responses) - if (yield* Deferred.isDone(response.ended)) continue - activeResponse = response - return - } - }, - (effect) => - effect.pipe( - Effect.timeoutOrElse({ - duration: 10_000, - orElse: () => Effect.fail(new Error("timed out waiting for an LLM response")), - }), - ), - ) - - const sendOutput = Effect.fn("LifecycleProperties.sendOutput")(function* (item: Llm.Output) { - const response = activeResponse - if (response === undefined) return yield* Effect.fail(new Error("no active LLM response")) - yield* Queue.offer(response.output, item) - }) - - const endResponse = Effect.fn("LifecycleProperties.endResponse")( - function* (item: Llm.Output) { - const response = activeResponse - if (response === undefined) return yield* Effect.fail(new Error("no active LLM response")) - yield* Queue.offer(response.output, item) - yield* Deferred.await(response.ended) - activeResponse = undefined - }, - (effect) => - effect.pipe( - Effect.timeoutOrElse({ - duration: 10_000, - orElse: () => Effect.fail(new Error("timed out waiting for the LLM response to end")), - }), - ), - ) - - const promptOwners = Effect.fn("LifecycleProperties.promptOwners")(function* ( - sessionID: SessionID, - prompt: string, - ) { - const [messages, pending] = yield* Effect.all( - [ - opencode.message.list({ sessionID, limit: 20, order: "desc" }), - opencode.session.pending.list({ sessionID }), - ], - { concurrency: "unbounded" }, - ) - return { - projected: messages.data.filter((message) => message.type === "user" && message.text === prompt).length, - pending: pending.filter((input) => input.type === "user" && input.data.text === prompt).length, - } - }) - - const assertAssistantContent = Effect.fn("LifecycleProperties.assertAssistantContent")(function* ( - state: Extract, - ) { - if (state.output === undefined && state.reasoning === undefined && state.tool === undefined) return - const messages = yield* opencode.message.list({ - sessionID: state.sessionID, - limit: 20, - order: "desc", - }) - const assistant = messages.data.find((message) => message.type === "assistant") - if ( - assistant?.type === "assistant" && - (state.output === undefined || - assistant.content.some((part) => part.type === "text" && part.text === state.output)) && - (state.reasoning === undefined || - assistant.content.some((part) => part.type === "reasoning" && part.text === state.reasoning)) && - (state.tool === undefined || - assistant.content.some( - (part) => - part.type === "tool" && - part.id === state.tool?.callID && - part.state.status === "error" && - part.state.error.type === "aborted", - )) - ) - return - return yield* Effect.fail(new Error("server projection lost settled assistant content")) - }) - - const idleAfter = (state: Extract): Model => ({ - phase: "idle", - sessionID: state.sessionID, - prompt: state.prompt, - output: state.output, - }) - - const afterInterrupted = Effect.fn("LifecycleProperties.afterInterrupted")(function* ( - state: Extract, - ) { - if (state.queuedPrompt === undefined) return idleAfter(state) - const owners = yield* promptOwners(state.sessionID, state.queuedPrompt) - if (owners.pending === 1 && owners.projected === 0) - return { - phase: "pending", - sessionID: state.sessionID, - prompt: state.prompt, - output: state.output, - pendingPrompt: state.queuedPrompt, - } satisfies Model - return yield* Effect.fail( - new Error(`interrupted prompt has ${owners.projected} projected and ${owners.pending} pending owners`), - ) - }) - - const afterProviderFailure = Effect.fn("LifecycleProperties.afterProviderFailure")(function* ( - state: Extract, - after: number, - ) { - if (state.queuedPrompt === undefined) return idleAfter(state) - const started = yield* waitForEvent("session.execution.started", state.sessionID, after) - yield* waitForEvent("session.input.promoted", state.sessionID, started.index) - const owners = yield* promptOwners(state.sessionID, state.queuedPrompt) - if (owners.pending !== 0 || owners.projected !== 1) - return yield* Effect.fail( - new Error(`recovered prompt has ${owners.projected} projected and ${owners.pending} pending owners`), - ) - yield* waitForResponse() - return { - phase: "streaming", - sessionID: state.sessionID, - prompt: state.queuedPrompt, - } satisfies Model - }) - - const final = yield* run({ - context: { - ui, - artifacts, - evidence: () => Effect.succeed({ events }), - }, - initial: { phase: "idle" }, - seed, - steps, - transitions: [ - { - name: "submit", - enabled: (state) => state.phase !== "streaming", - run: (state, step) => - Effect.gen(function* () { - if (state.phase === "streaming") return state - const prompt = `lifecycle-prompt-${step}` - const after = eventSequence - 1 - yield* ui.submit(prompt) - const admitted = - state.phase === "pending" - ? yield* waitForEvent("session.input.admitted", state.sessionID, after) - : undefined - const started = yield* waitForEvent( - "session.execution.started", - state.phase === "pending" ? state.sessionID : undefined, - admitted?.index ?? after, - ) - const sessionID = state.phase === "pending" ? state.sessionID : yield* currentSession() - if (started.sessionID !== sessionID) - return yield* Effect.fail(new Error("execution started for an unexpected session")) - if (state.phase === "pending") { - const first = yield* waitForEvent("session.input.promoted", sessionID, started.index) - yield* waitForEvent("session.input.promoted", sessionID, first.index) - const [previous, current] = yield* Effect.all( - [promptOwners(sessionID, state.pendingPrompt), promptOwners(sessionID, prompt)], - { concurrency: "unbounded" }, - ) - if ( - previous.projected !== 1 || - previous.pending !== 0 || - current.projected !== 1 || - current.pending !== 0 - ) - return yield* Effect.fail( - new Error( - `resumed prompts have previous ${previous.projected}/${previous.pending} and current ${current.projected}/${current.pending} projected/pending owners`, - ), - ) - yield* waitForResponse() - return { phase: "streaming", sessionID, prompt } - } - yield* waitForResponse() - return { phase: "streaming", sessionID, prompt } - }), - }, - { - name: "emit-text", - enabled: (state) => state.phase === "streaming" && state.output === undefined && state.tool === undefined, - run: (state, step) => - Effect.gen(function* () { - if (state.phase !== "streaming") return state - const text = `lifecycle-output-${step}` - const after = eventSequence - 1 - yield* sendOutput(Llm.text(text, { delay: 0, chunkSize: 100 })) - yield* waitForEvent("session.text.started", state.sessionID, after) - return { ...state, output: text } - }), - }, - { - name: "emit-reasoning", - enabled: (state) => - state.phase === "streaming" && state.reasoning === undefined && state.tool === undefined, - run: (state, step) => - Effect.gen(function* () { - if (state.phase !== "streaming") return state - const reasoning = `lifecycle-reasoning-${step}` - const after = eventSequence - 1 - yield* sendOutput(Llm.reasoning(reasoning, { delay: 0, chunkSize: 100 })) - yield* waitForEvent("session.reasoning.started", state.sessionID, after) - return { ...state, reasoning } - }), - }, - { - name: "start-tool-input", - enabled: (state) => state.phase === "streaming" && state.tool === undefined, - run: (state, step) => - Effect.gen(function* () { - if (state.phase !== "streaming") return state - const callID = `call_lifecycle_${step}` - const question = `lifecycle-tool-question-${step}` - const after = eventSequence - 1 - yield* sendOutput( - Llm.toolCall( - { - index: 0, - id: callID, - name: "question", - input: { - questions: [ - { - question, - header: "Lifecycle", - options: [ - { - label: "Continue", - description: "Continue the lifecycle simulation.", - }, - ], - multiple: false, - }, - ], - }, - }, - { delay: 20, chunkSize: 100 }, - ), - ) - const started = yield* waitForEvent("session.tool.input.started", state.sessionID, after) - return { - ...state, - tool: { - callID, - question, - phase: "input" as const, - startedAfter: started.index, - }, - } - }), - }, - { - name: "await-tool-execution", - enabled: (state) => state.phase === "streaming" && state.tool?.phase === "input", - run: (state) => - Effect.gen(function* () { - if (state.phase !== "streaming" || state.tool?.phase !== "input") return state - yield* endResponse(Llm.finish("tool-calls")) - yield* waitForEvent("session.tool.called", state.sessionID, state.tool.startedAfter) - yield* ui.waitFor(state.tool.question, { timeout: 10_000 }) - return { ...state, tool: { ...state.tool, phase: "running" as const } } - }), - }, - { - name: "queue-prompt", - enabled: (state) => - state.phase === "streaming" && state.queuedPrompt === undefined && state.tool === undefined, - run: (state, step) => - Effect.gen(function* () { - if (state.phase !== "streaming") return state - const queuedPrompt = `queued-prompt-${step}` - const after = eventSequence - 1 - yield* ui.submit(queuedPrompt) - yield* waitForEvent("session.input.admitted", state.sessionID, after) - return { ...state, queuedPrompt } - }), - }, - { - name: "finish", - enabled: (state) => - state.phase === "streaming" && - state.tool === undefined && - (state.output !== undefined || state.reasoning !== undefined), - run: (state) => - Effect.gen(function* () { - if (state.phase !== "streaming") return state - const after = eventSequence - 1 - yield* endResponse(Llm.finish()) - if (state.queuedPrompt !== undefined) { - yield* waitForEvent("session.input.promoted", state.sessionID, after) - yield* assertAssistantContent(state) - const owners = yield* promptOwners(state.sessionID, state.queuedPrompt) - if (owners.projected !== 1 || owners.pending !== 0) - return yield* Effect.fail( - new Error( - `promoted prompt has ${owners.projected} projected and ${owners.pending} pending owners`, - ), - ) - yield* waitForResponse() - return { - phase: "streaming", - sessionID: state.sessionID, - prompt: state.queuedPrompt, - } - } - yield* waitForEvent("session.execution.succeeded", state.sessionID, after) - yield* assertAssistantContent(state) - return idleAfter(state) - }), - }, - { - name: "interrupt", - enabled: (state) => state.phase === "streaming", - run: (state) => - Effect.gen(function* () { - if (state.phase !== "streaming") return state - const after = eventSequence - 1 - yield* opencode.session.interrupt({ sessionID: state.sessionID }) - yield* waitForEvent("session.execution.interrupted", state.sessionID, after) - if (state.tool?.phase !== "running") - yield* endResponse(Llm.text("discarded-after-interrupt", { delay: 0, chunkSize: 100 })) - yield* assertAssistantContent(state) - return yield* afterInterrupted(state) - }), - }, - { - name: "provider-disconnect", - enabled: (state) => state.phase === "streaming" && state.tool === undefined, - run: (state) => - Effect.gen(function* () { - if (state.phase !== "streaming") return state - const after = eventSequence - 1 - yield* endResponse(Llm.disconnect()) - const failed = yield* waitForEvent("session.execution.failed", state.sessionID, after) - yield* assertAssistantContent(state) - return yield* afterProviderFailure(state, failed.index) - }), - }, - ], - invariants: [ - { - name: "latest prompt remains visible", - check: (state) => - state.phase === "streaming" && state.queuedPrompt !== undefined - ? ui.waitFor(state.queuedPrompt, { timeout: 10_000 }).pipe(Effect.asVoid) - : state.phase === "pending" - ? ui.waitFor(state.pendingPrompt, { timeout: 10_000 }).pipe(Effect.asVoid) - : state.prompt === undefined - ? Effect.void - : ui.waitFor(state.prompt, { timeout: 10_000 }).pipe(Effect.asVoid), - }, - { - name: "settled output remains visible", - check: (state) => - state.phase === "streaming" || state.output === undefined - ? Effect.void - : ui.waitFor(state.output, { timeout: 10_000 }).pipe(Effect.asVoid), - }, - { - name: "active output remains visible", - check: (state) => - state.phase !== "streaming" || state.output === undefined - ? Effect.void - : ui.waitFor(state.output, { timeout: 10_000 }).pipe(Effect.asVoid), - }, - { - name: "running tool remains visible", - check: (state) => - state.phase === "streaming" && state.tool?.phase === "running" - ? ui.waitFor(state.tool.question, { timeout: 10_000 }).pipe(Effect.asVoid) - : Effect.void, - }, - { - name: "settled composer is actionable", - check: (state) => - state.phase !== "streaming" - ? ui.waitFor((current) => current.focused.editor, { timeout: 10_000 }).pipe(Effect.asVoid) - : Effect.void, - }, - { - name: "server projection retains the latest prompt", - check: (state) => - state.sessionID === undefined || state.prompt === undefined - ? Effect.void - : Effect.gen(function* () { - const sessionID = state.sessionID - const prompt = state.prompt - if (sessionID === undefined || prompt === undefined) return - const messages = yield* opencode.message.list({ - sessionID, - limit: 20, - order: "desc", - }) - if (messages.data.some((message) => message.type === "user" && message.text === prompt)) return - return yield* Effect.fail(new Error(`server projection lost prompt: ${prompt}`)) - }), - }, - { - name: "queued prompt has exactly one owner", - check: (state) => - (state.phase === "streaming" - ? state.queuedPrompt - : state.phase === "pending" - ? state.pendingPrompt - : undefined) === undefined || state.sessionID === undefined - ? Effect.void - : Effect.gen(function* () { - const ownedPrompt = - state.phase === "streaming" - ? state.queuedPrompt - : state.phase === "pending" - ? state.pendingPrompt - : undefined - const sessionID = state.sessionID - if (ownedPrompt === undefined || sessionID === undefined) return - const owners = yield* promptOwners(sessionID, ownedPrompt) - if (owners.projected + owners.pending === 1) return - return yield* Effect.fail( - new Error( - `queued prompt has ${owners.projected} projected and ${owners.pending} pending owners: ${ownedPrompt}`, - ), - ) - }), - }, - { - name: "settled session has no pending input", - check: (state) => - state.phase !== "idle" || state.sessionID === undefined - ? Effect.void - : Effect.gen(function* () { - const sessionID = state.sessionID - if (sessionID === undefined) return - const pending = yield* opencode.session.pending.list({ sessionID }) - if (pending.length === 0) return - return yield* Effect.fail( - new Error(`settled session retained ${pending.length} pending input(s)`), - ) - }), - }, - { - name: "transport defects are not rendered", - check: () => - Effect.forEach(["UnknownError", "RpcClientDefect"], (text) => - ui.matches(text).pipe( - Effect.filterOrFail( - (visible) => !visible, - () => new Error(`rendered internal error: ${text}`), - ), - ), - ).pipe(Effect.asVoid), - }, - ], - }) - - if (final.phase === "streaming") { - const after = eventSequence - 1 - if (final.tool !== undefined) { - yield* opencode.session.interrupt({ sessionID: final.sessionID }) - yield* waitForEvent("session.execution.interrupted", final.sessionID, after) - if (final.tool.phase === "input") - yield* endResponse(Llm.text("discarded-after-interrupt", { delay: 0, chunkSize: 100 })) - yield* assertAssistantContent(final) - } else { - yield* endResponse(Llm.finish()) - if (final.queuedPrompt !== undefined) { - const promoted = yield* waitForEvent("session.input.promoted", final.sessionID, after) - yield* waitForResponse() - yield* endResponse(Llm.finish()) - yield* waitForEvent("session.execution.succeeded", final.sessionID, promoted.index) - } else { - yield* waitForEvent("session.execution.succeeded", final.sessionID, after) - } - } - } - }), - ), -}) - -function readInteger(name: string, fallback: number, maximum: number) { - const value = Number(process.env[name] ?? fallback) - if (!Number.isSafeInteger(value) || value < 0 || value > maximum) - throw new Error(`${name} must be an integer between 0 and ${maximum}`) - return value -} diff --git a/packages/drive/test/manual/tui-regressions/multi-tool-interleavings.ts b/packages/drive/test/manual/tui-regressions/multi-tool-interleavings.ts deleted file mode 100644 index 72473cd0520..00000000000 --- a/packages/drive/test/manual/tui-regressions/multi-tool-interleavings.ts +++ /dev/null @@ -1,215 +0,0 @@ -import { defineScript, Llm } from "../../../src/index.js" -import { Deferred, Effect, Schedule, Stream } from "effect" - -const shellCallID = "call_multi_shell" -const questionCallID = "call_multi_question" -const readCallID = "call_multi_read" -const globCallID = "call_multi_glob" -const question = "Which runtime should the multi-tool probe use?" - -export default defineScript({ - project: { - files: { - "fixture.txt": "multi-tool fixture\n", - }, - }, - config: { - autoupdate: false, - permissions: [ - { action: "*", resource: "*", effect: "ask" }, - { action: "shell", resource: "*", effect: "allow" }, - ], - }, - tools: ["shell"], - run: ({ ui, llm, opencode, artifacts, tools }) => - Effect.scoped( - Effect.gen(function* () { - const shells = yield* tools.control("shell") - const executionInterrupted = yield* Deferred.make() - const toolSettlements: Array = [] - - yield* opencode.event.subscribe().pipe( - Stream.runForEach((event) => { - if (event.type === "session.tool.success" || event.type === "session.tool.failed") - toolSettlements.push(`${event.type}:${event.data.id}`) - if (event.type === "session.execution.interrupted") - return Deferred.succeed(executionInterrupted, undefined).pipe(Effect.asVoid) - return Effect.void - }), - Effect.forkScoped, - ) - - yield* llm.queue( - Llm.toolCall({ - index: 0, - id: shellCallID, - name: "shell", - input: { command: "hold multi-tool shell" }, - }), - Llm.toolCall({ - index: 1, - id: questionCallID, - name: "question", - input: { - questions: [ - { - question, - header: "Runtime", - options: [ - { label: "Bun", description: "Use Bun for the probe." }, - { label: "Node", description: "Use Node for the probe." }, - ], - multiple: false, - }, - ], - }, - }), - Llm.toolCall({ - index: 2, - id: readCallID, - name: "read", - input: { path: "fixture.txt" }, - }), - Llm.toolCall({ - index: 3, - id: globCallID, - name: "glob", - input: { pattern: "**/*.txt", path: ".", limit: 100 }, - }), - Llm.finish("tool-calls"), - ) - yield* llm.queue(Llm.text("multi-tool-interleaving-complete")) - - yield* ui.submit("Run a shell, ask a question, and read the fixture concurrently.") - const shell = yield* shells.take(shellCallID) - yield* shell.progress("multi-tool shell remains active\n") - const sessionID = yield* poll( - opencode.session.list({ limit: 1, order: "desc" }).pipe(Effect.map((sessions) => sessions.data[0]?.id)), - "current session", - ) - const permissions = yield* poll( - opencode.permission.list({ sessionID }).pipe( - Effect.map((items) => { - const questionPermission = items.find( - (item) => item.source?.type === "tool" && item.source.id === questionCallID, - ) - const readPermission = items.find((item) => item.source?.type === "tool" && item.source.id === readCallID) - const globPermission = items.find((item) => item.source?.type === "tool" && item.source.id === globCallID) - return questionPermission && readPermission && globPermission - ? { question: questionPermission, read: readPermission, glob: globPermission } - : undefined - }), - ), - "question, read, and glob permissions", - ) - - yield* opencode.permission.reply({ - sessionID, - requestID: permissions.question.id, - reply: "once", - }) - const form = yield* poll( - Effect.all({ - forms: opencode.form.list({ sessionID }), - permissions: opencode.permission.list({ sessionID }), - }).pipe( - Effect.map(({ forms, permissions: current }) => - forms[0] && - current.some((item) => item.id === permissions.read.id) && - current.some((item) => item.id === permissions.glob.id) - ? forms[0] - : undefined, - ), - ), - "question form behind the read and glob permissions", - ) - yield* saveFrame(artifacts, "permission-over-form", yield* ui.capture()) - yield* ui.screenshot("permission-over-form") - yield* ui.waitFor("Permission required", { timeout: 10_000 }) - - yield* opencode.permission.reply({ - sessionID, - requestID: permissions.glob.id, - reply: "once", - }) - yield* poll( - opencode.message.list({ sessionID, limit: 20, order: "desc" }).pipe( - Effect.map((messages) => { - const glob = messages.data - .flatMap((message) => (message.type === "assistant" ? message.content : [])) - .find((part) => part.type === "tool" && part.id === globCallID) - return glob?.type === "tool" && glob.state.status === "completed" ? glob : undefined - }), - ), - "glob completion while read permission remains", - ) - const remaining = yield* opencode.permission.list({ sessionID }) - if (!remaining.some((item) => item.id === permissions.read.id)) - return yield* Effect.fail(new Error("read permission disappeared before rejection")) - - yield* opencode.permission.reply({ - sessionID, - requestID: permissions.read.id, - reply: "reject", - }) - yield* ui.waitFor(question, { timeout: 10_000 }) - yield* saveFrame(artifacts, "form-with-running-shell", yield* ui.capture()) - yield* ui.screenshot("form-with-running-shell") - - yield* ui.enter() - yield* poll( - opencode.form - .state({ sessionID, formID: form.id }) - .pipe(Effect.map((state) => (state.status === "answered" ? state : undefined))), - "answered question form", - ) - - yield* shell.succeed({ output: "multi-tool shell completed\n", exit: 0 }) - yield* Deferred.await(executionInterrupted) - yield* ui.submit("Recover after the rejected concurrent tool.") - yield* ui.waitFor("multi-tool-interleaving-complete", { timeout: 15_000 }) - const messages = yield* opencode.message.list({ sessionID, limit: 20, order: "desc" }) - const toolParts = messages.data.flatMap((message) => - message.type === "assistant" ? message.content.filter((part) => part.type === "tool") : [], - ) - const statuses = new Map(toolParts.map((tool) => [tool.id, tool.state.status])) - if ( - statuses.get(shellCallID) !== "completed" || - statuses.get(questionCallID) !== "completed" || - statuses.get(globCallID) !== "completed" || - statuses.get(readCallID) !== "error" - ) - return yield* Effect.fail( - new Error(`unexpected final tool states: ${JSON.stringify(Object.fromEntries(statuses))}`), - ) - const expected = [ - `session.tool.success:${globCallID}`, - `session.tool.success:${questionCallID}`, - `session.tool.success:${shellCallID}`, - `session.tool.failed:${readCallID}`, - ] - const relevant = toolSettlements.filter((item) => expected.includes(item)) - if (relevant.join("\n") !== expected.join("\n")) - return yield* Effect.fail(new Error(`unexpected tool settlement order: ${JSON.stringify(relevant)}`)) - return undefined - }), - ), -}) - -function poll(effect: Effect.Effect, description: string) { - return Effect.repeat(effect, { - until: (value): value is A => value !== undefined, - schedule: Schedule.spaced(50), - }).pipe( - Effect.timeoutOrElse({ - duration: 10_000, - orElse: () => Effect.fail(new Error(`timed out waiting for ${description}`)), - }), - ) -} - -function saveFrame(artifacts: string, name: string, frame: unknown) { - return Effect.tryPromise(() => Bun.write(`${artifacts}/${name}.frame.json`, JSON.stringify(frame, null, 2))).pipe( - Effect.asVoid, - ) -} diff --git a/packages/drive/test/manual/tui-regressions/pending-form-restart.ts b/packages/drive/test/manual/tui-regressions/pending-form-restart.ts deleted file mode 100644 index faf66c78605..00000000000 --- a/packages/drive/test/manual/tui-regressions/pending-form-restart.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { defineScript, Llm } from "../../../src/index.js" -import { Effect } from "effect" - -const question = { - question: "Which runtime should the restart regression use?", - header: "Runtime", - options: [ - { label: "Bun", description: "Use Bun for the regression." }, - { label: "Node", description: "Use Node for the regression." }, - ], - multiple: false, -} - -export default defineScript({ - launch: "manual", - run: ({ server, tuis, llm, artifacts }) => - Effect.gen(function* () { - yield* server.launch() - const tui = yield* tuis.launch("pending-form-restart") - yield* llm.queue( - Llm.toolCall({ - index: 0, - id: "call_pending_form_restart", - name: "question", - input: { questions: [question] }, - }), - Llm.finish("tool-calls"), - ) - yield* tui.ui.submit("Ask one runtime question and wait for my answer.") - yield* tui.ui.waitFor(question.question, { timeout: 15_000 }) - - yield* server.kill() - yield* server.launch() - yield* Effect.sleep(3_000) - if (!(yield* tui.ui.matches(question.question))) return - yield* llm.queue(Llm.text("restart-form-answer-accepted")) - yield* tui.ui.enter() - yield* tui.ui.enter() - yield* tui.ui.waitFor("Review", { timeout: 5_000 }) - yield* tui.ui.enter() - yield* Effect.sleep(1_000) - - if (yield* tui.ui.matches("Form not found")) { - const frame = yield* tui.ui.capture() - yield* Effect.tryPromise(() => Bun.write(`${artifacts}/stale-form.frame.json`, JSON.stringify(frame, null, 2))) - return yield* Effect.fail(new Error("pending form became stale after server restart")) - } - yield* tui.ui.waitFor("restart-form-answer-accepted", { timeout: 15_000 }) - }), -}) diff --git a/packages/drive/test/manual/tui-regressions/reconnect-outage.ts b/packages/drive/test/manual/tui-regressions/reconnect-outage.ts deleted file mode 100644 index 894d0d77d35..00000000000 --- a/packages/drive/test/manual/tui-regressions/reconnect-outage.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { defineScript } from "../../../src/index.js" -import { Effect } from "effect" - -const outage = Number(process.env.OPENCODE_DRIVE_OUTAGE_MS ?? 20_000) - -export default defineScript({ - launch: "manual", - run: ({ server, tuis }) => - Effect.gen(function* () { - yield* server.launch() - const tui = yield* tuis.launch("reconnect-outage") - yield* tui.ui.waitFor("Ask anything", { timeout: 15_000 }) - - yield* server.kill() - yield* Effect.sleep(outage) - yield* server.launch() - - yield* tui.ui.waitFor("Ask anything", { timeout: 60_000 }) - }), -}) diff --git a/packages/drive/test/manual/tui-regressions/server-restart.ts b/packages/drive/test/manual/tui-regressions/server-restart.ts deleted file mode 100644 index 1fcad9e8a02..00000000000 --- a/packages/drive/test/manual/tui-regressions/server-restart.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { defineScript, Llm } from "../../../src/index.js" -import { Config, Effect } from "effect" - -export default defineScript({ - launch: "manual", - run: ({ server, tuis, llm, artifacts }) => - Effect.gen(function* () { - yield* Config.string("OPENCODE_DRIVE_DB") - yield* server.launch() - const tui = yield* tuis.launch("restart-regression") - - yield* llm.queue(Llm.text("before-restart-response")) - yield* tui.ui.submit("before-restart-prompt") - yield* tui.ui.waitFor("before-restart-response", { timeout: 5_000 }) - - yield* server.kill() - yield* server.launch() - - yield* Effect.sleep(3_000) - const frame = yield* tui.ui.capture() - yield* Effect.tryPromise(() => Bun.write(`${artifacts}/after-restart.frame.json`, JSON.stringify(frame, null, 2))) - - yield* tui.ui.waitFor("before-restart-prompt", { timeout: 5_000 }) - yield* llm.queue(Llm.text("after-restart-response")) - yield* tui.ui.submit("after-restart-prompt") - yield* tui.ui.waitFor("after-restart-response", { timeout: 5_000 }) - }), -}) diff --git a/packages/drive/test/manual/tui-regressions/state-machine.ts b/packages/drive/test/manual/tui-regressions/state-machine.ts deleted file mode 100644 index 7b1fa05cba9..00000000000 --- a/packages/drive/test/manual/tui-regressions/state-machine.ts +++ /dev/null @@ -1,90 +0,0 @@ -import type { Ui } from "../../../src/index.js" -import { Effect, Exit, Random } from "effect" - -export interface Context { - readonly ui: Ui - readonly artifacts: string - readonly evidence?: () => Effect.Effect -} - -export interface Transition { - readonly name: string - readonly enabled: (state: State) => boolean - readonly run: (state: State, step: number) => Effect.Effect -} - -export interface Invariant { - readonly name: string - readonly check: (state: State) => Effect.Effect -} - -export function run(options: { - readonly context: Context - readonly initial: State - readonly seed: number - readonly steps: number - readonly transitions: ReadonlyArray> - readonly invariants: ReadonlyArray> -}) { - return Effect.gen(function* () { - const trace: Array<{ step: number; transition: string }> = [] - let state = options.initial - - for (let step = 0; step < options.steps; step++) { - const enabled = options.transitions.filter((transition) => transition.enabled(state)) - if (enabled.length === 0) return yield* Effect.fail(new Error(`state machine has no transition at step ${step}`)) - const transition = yield* Random.choice(enabled) - trace.push({ step, transition: transition.name }) - let invariant: string | undefined - let next = state - const result = yield* Effect.exit( - Effect.gen(function* () { - next = yield* transition.run(state, step) - for (const current of options.invariants) { - invariant = current.name - yield* current.check(next) - } - }), - ) - if (Exit.isSuccess(result)) { - state = next - continue - } - - const path = `${options.context.artifacts}/state-machine-failure.json` - yield* Effect.gen(function* () { - const [frame, evidence] = yield* Effect.all([ - options.context.ui.capture().pipe(Effect.option), - options.context.evidence?.().pipe(Effect.option) ?? Effect.succeed(undefined), - ]) - yield* Effect.tryPromise(() => - Bun.write( - path, - JSON.stringify( - { - seed: options.seed, - steps: options.steps, - failedAt: step, - transition: transition.name, - invariant, - trace, - state: next, - evidence: evidence?._tag === "Some" ? evidence.value : undefined, - frame: frame._tag === "Some" ? frame.value : undefined, - }, - null, - 2, - ), - ), - ) - }).pipe(Effect.ignore) - console.error( - JSON.stringify({ seed: options.seed, step, transition: transition.name, invariant, artifact: path }), - ) - return yield* Effect.failCause(result.cause) - } - - console.log(JSON.stringify({ seed: options.seed, steps: options.steps, trace })) - return state - }).pipe(Random.withSeed(options.seed)) -} diff --git a/packages/drive/test/recording/decode.test.ts b/packages/drive/test/recording/decode.test.ts deleted file mode 100644 index d2f5d1a2d3f..00000000000 --- a/packages/drive/test/recording/decode.test.ts +++ /dev/null @@ -1,70 +0,0 @@ -import { afterEach, describe, expect, test } from "vitest" -import { mkdtemp, rm, writeFile } from "node:fs/promises" -import { tmpdir } from "node:os" -import { join } from "node:path" -import { decodeTimeline } from "../../src/recording/index.js" - -const directories: string[] = [] - -afterEach(async () => { - await Promise.all(directories.splice(0).map((path) => rm(path, { recursive: true, force: true }))) -}) - -async function timeline(contents: string) { - const directory = await mkdtemp(join(tmpdir(), "drive-decode-test-")) - directories.push(directory) - const path = join(directory, "timeline.jsonl") - await writeFile(path, contents) - return path -} - -async function read(path: string) { - const records = [] - for await (const record of decodeTimeline(path)) records.push(record) - return records -} - -describe("decodeTimeline", () => { - test("streams a canonical timeline with or without a final newline", async () => { - const path = await timeline( - '{"type":"header","version":1,"cols":80,"rows":24,"encoding":"base64"}\n' + - '{"type":"output","at_ms":3,"data":"aGk="}\n' + - '{"type":"resize","at_ms":4,"cols":100,"rows":30}', - ) - expect(await read(path)).toEqual([ - { type: "header", version: 1, cols: 80, rows: 24, encoding: "base64" }, - { type: "output", at_ms: 3, data: "aGk=" }, - { type: "resize", at_ms: 4, cols: 100, rows: 30 }, - ]) - }) - - test.each([ - ["empty file", ""], - ["output before header", '{"type":"output","at_ms":0,"data":""}\n'], - ["extra header field", '{"type":"header","version":1,"cols":2,"rows":1,"encoding":"base64","extra":true}\n'], - [ - "noncanonical base64", - '{"type":"header","version":1,"cols":2,"rows":1,"encoding":"base64"}\n' + - '{"type":"output","at_ms":0,"data":"YQ"}\n', - ], - [ - "fractional timestamp", - '{"type":"header","version":1,"cols":2,"rows":1,"encoding":"base64"}\n' + - '{"type":"output","at_ms":0.5,"data":""}\n', - ], - [ - "decreasing timestamps", - '{"type":"header","version":1,"cols":2,"rows":1,"encoding":"base64"}\n' + - '{"type":"output","at_ms":2,"data":""}\n' + - '{"type":"resize","at_ms":1,"cols":2,"rows":1}\n', - ], - [ - "invalid resize size", - '{"type":"header","version":1,"cols":2,"rows":1,"encoding":"base64"}\n' + - '{"type":"resize","at_ms":1,"cols":0,"rows":1}\n', - ], - ["blank line", '{"type":"header","version":1,"cols":2,"rows":1,"encoding":"base64"}\n\n'], - ])("rejects %s", async (_name, contents) => { - await expect(read(await timeline(contents))).rejects.toThrow("Invalid recording timeline") - }) -}) diff --git a/packages/drive/test/recording/export-dedupe.test.ts b/packages/drive/test/recording/export-dedupe.test.ts deleted file mode 100644 index 23bafa88a9a..00000000000 --- a/packages/drive/test/recording/export-dedupe.test.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { afterEach, expect, test, vi } from "vitest" -import { mkdtemp, rm, writeFile } from "node:fs/promises" -import { tmpdir } from "node:os" -import { join } from "node:path" -import type { ImageFrame } from "../../src/recording/encode.js" - -const encoded = vi.hoisted(() => ({ frames: [] as ReadonlyArray })) - -vi.mock("../../src/recording/encode.js", () => ({ - encodeFrames: vi.fn(async (frames: ReadonlyArray) => { - encoded.frames = frames - }), -})) - -import { exportRecording } from "../../src/recording/export.js" - -const directories: string[] = [] - -afterEach(async () => { - encoded.frames = [] - await Promise.all(directories.splice(0).map((path) => rm(path, { recursive: true, force: true }))) -}) - -test("deduplicates equal snapshots with distinct identities", async () => { - const directory = await mkdtemp(join(tmpdir(), "drive-export-dedupe-test-")) - directories.push(directory) - const timeline = join(directory, "timeline.jsonl") - await writeFile( - timeline, - [ - JSON.stringify({ type: "header", version: 1, cols: 8, rows: 2, encoding: "base64" }), - JSON.stringify({ - type: "output", - at_ms: 0, - data: Buffer.from("ready").toString("base64"), - }), - JSON.stringify({ type: "output", at_ms: 500, data: "" }), - "", - ].join("\n"), - ) - - await exportRecording(timeline, join(directory, "video.mp4")) - - expect(encoded.frames).toHaveLength(31) - expect(new Set(encoded.frames.map((frame) => frame.key))).toHaveLength(1) -}) diff --git a/packages/drive/test/recording/export.test.ts b/packages/drive/test/recording/export.test.ts deleted file mode 100644 index 33e9cc0a046..00000000000 --- a/packages/drive/test/recording/export.test.ts +++ /dev/null @@ -1,388 +0,0 @@ -import { afterEach, expect, test } from "vitest" -import { mkdtemp, readFile, rm, stat, writeFile } from "node:fs/promises" -import { tmpdir } from "node:os" -import { join } from "node:path" -import { fileURLToPath } from "node:url" -import { createCanvas, loadImage } from "@napi-rs/canvas" -import { encodeFrames, exportRecording, joinFrames, renderFrame } from "../../src/recording/index.js" - -const directories: string[] = [] - -afterEach(async () => { - await Promise.all(directories.splice(0).map((path) => rm(path, { recursive: true, force: true }))) -}) - -test("exports the final frame as a PNG and creates its parent", async () => { - const directory = await mkdtemp(join(tmpdir(), "drive-export-test-")) - directories.push(directory) - const timeline = join(directory, "timeline.jsonl") - await writeFile( - timeline, - `${JSON.stringify({ type: "header", version: 1, cols: 4, rows: 2, encoding: "base64" })}\n` + - `${JSON.stringify({ type: "output", at_ms: 0, data: Buffer.from("hi").toString("base64") })}\n`, - ) - const output = join(directory, "nested", "frame.png") - const result = await exportRecording(timeline, output) - expect(result).toEqual({ frames: 1, durationMs: 0, width: 40, height: 40 }) - expect((await readFile(output)).subarray(0, 8)).toEqual(Buffer.from([137, 80, 78, 71, 13, 10, 26, 10])) - expect((await stat(output)).size).toBeGreaterThan(100) -}) - -test("rejects invalid encoding frame rates", async () => { - await expect( - encodeFrames([{ atMs: 0, key: "frame", render: () => Buffer.alloc(0) }], join(tmpdir(), "invalid-frame-rate.mp4"), { - fps: 0, - }), - ).rejects.toThrow("fps must be a positive finite number") -}) - -test("renders an optional recording header", async () => { - const directory = await mkdtemp(join(tmpdir(), "drive-export-header-test-")) - directories.push(directory) - const timeline = join(directory, "timeline.jsonl") - await writeFile( - timeline, - `${JSON.stringify({ type: "header", version: 1, cols: 4, rows: 2, encoding: "base64" })}\n` + - `${JSON.stringify({ type: "output", at_ms: 0, data: Buffer.from("hi").toString("base64") })}\n`, - ) - const output = join(directory, "frame.png") - const result = await exportRecording(timeline, output, { header: "Before · Submit prompt" }) - const data = await readFile(output) - - expect(result.height).toBe(80) - expect(data.readUInt32BE(20)).toBe(80) -}) - -test("exports resized recordings on a stable maximum-size canvas", async () => { - const directory = await mkdtemp(join(tmpdir(), "drive-export-resize-test-")) - directories.push(directory) - const timeline = join(directory, "timeline.jsonl") - await writeFile( - timeline, - [ - JSON.stringify({ - type: "header", - version: 1, - cols: 8, - rows: 4, - encoding: "base64", - }), - JSON.stringify({ - type: "output", - at_ms: 0, - data: Buffer.from("wide").toString("base64"), - }), - JSON.stringify({ type: "resize", at_ms: 100, cols: 4, rows: 2 }), - JSON.stringify({ - type: "output", - at_ms: 100, - data: Buffer.from("small").toString("base64"), - }), - "", - ].join("\n"), - ) - const output = join(directory, "frame.png") - const result = await exportRecording(timeline, output) - const data = await readFile(output) - - expect(result).toEqual({ frames: 7, durationMs: 100, width: 80, height: 80 }) - expect(data.readUInt32BE(16)).toBe(80) - expect(data.readUInt32BE(20)).toBe(80) -}) - -test("centers capture glyphs vertically in their cells", async () => { - const image = await loadImage( - renderFrame({ - cols: 2, - rows: 1, - cursor: { row: 0, col: 0, visible: false }, - lines: [ - { - spans: [{ text: "Mg", width: 2, fg: 0xffffff, bg: 0x080808, attributes: 0 }], - }, - ], - }), - ) - const canvas = createCanvas(20, 20) - const context = canvas.getContext("2d") - context.drawImage(image, 0, 0) - const pixels = context.getImageData(0, 0, 20, 20).data - const inkRows = Array.from({ length: 20 }, (_, row) => row).filter((row) => - Array.from({ length: 20 }, (_, column) => (row * 20 + column) * 4).some( - (offset) => pixels[offset] !== 8 || pixels[offset + 1] !== 8 || pixels[offset + 2] !== 8, - ), - ) - - expect((inkRows[0]! + inkRows.at(-1)!) / 2).toBe(10.5) -}) - -test("renders block elements edge-to-edge", async () => { - const image = await loadImage( - renderFrame({ - cols: 3, - rows: 1, - cursor: { row: 0, col: 0, visible: false }, - lines: [ - { - spans: [ - { - text: "█▀▄", - width: 3, - fg: 0xffffff, - bg: 0x080808, - attributes: 0, - }, - ], - }, - ], - }), - ) - const canvas = createCanvas(30, 20) - const context = canvas.getContext("2d") - context.drawImage(image, 0, 0) - const pixels = context.getImageData(0, 0, 30, 20).data - const pixel = (column: number, row: number) => - Array.from(pixels.subarray((row * 30 + column) * 4, (row * 30 + column) * 4 + 4)) - - expect(pixel(0, 0)).toEqual([255, 255, 255, 255]) - expect(pixel(9, 19)).toEqual([255, 255, 255, 255]) - expect(pixel(10, 0)).toEqual([255, 255, 255, 255]) - expect(pixel(19, 9)).toEqual([255, 255, 255, 255]) - expect(pixel(10, 10)).toEqual([8, 8, 8, 255]) - expect(pixel(20, 9)).toEqual([8, 8, 8, 255]) - expect(pixel(20, 10)).toEqual([255, 255, 255, 255]) - expect(pixel(29, 19)).toEqual([255, 255, 255, 255]) -}) - -test("joins rendered frames horizontally", async () => { - const frame = { - cols: 2, - rows: 1, - cursor: { row: 0, col: 0, visible: false }, - lines: [{ spans: [{ text: "hi", width: 2, fg: 0xffffff, bg: 0x080808, attributes: 0 }] }], - } - const joined = await joinFrames(renderFrame(frame), renderFrame(frame)) - - expect(joined.readUInt32BE(16)).toBe(40) - expect(joined.readUInt32BE(20)).toBe(20) -}) - -test("renders the canonical OpenCode symbol set with the fallback font", async () => { - const symbols = [..."△⇆⊙⚙✱↳◌◈⟳▸▾■⬝⬥⬩⬪⠹"] - const image = await loadImage( - renderFrame({ - cols: symbols.length, - rows: 1, - cursor: { row: 0, col: 0, visible: false }, - lines: [ - { - spans: [ - { - text: symbols.join(""), - width: symbols.length, - fg: 0xffffff, - bg: 0x080808, - attributes: 0, - }, - ], - }, - ], - }), - ) - const canvas = createCanvas(symbols.length * 10, 20) - const context = canvas.getContext("2d") - context.drawImage(image, 0, 0) - const pixels = context.getImageData(0, 0, canvas.width, canvas.height).data - const masks = symbols.map((_, cell) => { - const mask = new Uint8Array(10 * 20) - const columns: number[] = [] - for (let row = 0; row < 20; row++) { - for (let column = 0; column < 10; column++) { - const source = (row * canvas.width + cell * 10 + column) * 4 - const ink = pixels[source] !== 8 || pixels[source + 1] !== 8 || pixels[source + 2] !== 8 - mask[row * 10 + column] = ink ? 1 : 0 - if (ink) columns.push(column) - } - } - const center = (Math.min(...columns) + Math.max(...columns)) / 2 - expect(Math.abs(center - 4.5)).toBeLessThanOrEqual(0.5) - return Bun.hash(mask) - }) - - expect(new Set(masks).size).toBe(symbols.length) -}) - -test("draws heavy vertical box elements continuously across cell boundaries", async () => { - const image = await loadImage( - renderFrame({ - cols: 1, - rows: 2, - cursor: { row: 0, col: 0, visible: false }, - lines: [ - { spans: [{ text: "┃", width: 1, fg: 0xffffff, bg: 0x000000, attributes: 0 }] }, - { spans: [{ text: "╹", width: 1, fg: 0xffffff, bg: 0x000000, attributes: 0 }] }, - ], - }), - ) - const canvas = createCanvas(image.width, image.height) - const context = canvas.getContext("2d") - context.drawImage(image, 0, 0) - - expect(Array.from(context.getImageData(4, 0, 2, 30).data)).toEqual( - Array.from({ length: 60 }, () => [255, 255, 255, 255]).flat(), - ) - expect(Array.from(context.getImageData(4, 30, 2, 10).data)).toEqual( - Array.from({ length: 20 }, () => [0, 0, 0, 255]).flat(), - ) -}) - -test("accepts valid capture font overrides", async () => { - const font = new URL("../../assets/fonts/commit-mono/CommitMono-400-Regular.otf", import.meta.url) - const child = renderImport({ OPENCODE_DRIVE_FONT: fileURLToPath(font) }) - expect(await child.exited).toBe(0) -}) - -test("rejects invalid capture font overrides", async () => { - const child = renderImport({ - OPENCODE_DRIVE_FONT: "/missing/capture-font.woff2", - }) - const stderr = new Response(child.stderr).text() - expect(await child.exited).toBe(1) - expect(await stderr).toContain("Failed to register capture font: /missing/capture-font.woff2") -}) - -if (Bun.which("ffmpeg") && Bun.which("ffprobe")) { - test("preserves irregular frame timing at the requested frame rate", async () => { - const directory = await mkdtemp(join(tmpdir(), "drive-encode-ffmpeg-test-")) - directories.push(directory) - const image = (background: number) => - renderFrame({ - cols: 1, - rows: 1, - cursor: { row: 0, col: 0, visible: false }, - lines: [{ spans: [{ text: " ", width: 1, fg: 0xffffff, bg: background, attributes: 0 }] }], - }) - const output = join(directory, "video.mp4") - await encodeFrames( - [ - { atMs: 0, key: "red", render: () => image(0xff0000) }, - { atMs: 1_000, key: "green", render: () => image(0x00ff00) }, - { atMs: 1_200, key: "blue", render: () => image(0x0000ff) }, - ], - output, - { fps: 5 }, - ) - - expect(probeVideo(output)).toEqual(["5/1", "1.400000", "7"]) - - const finalFrame = join(directory, "final.png") - const decoded = Bun.spawnSync([ - "ffmpeg", - "-v", - "error", - "-i", - output, - "-vf", - "reverse", - "-frames:v", - "1", - finalFrame, - ]) - expect(decoded.exitCode).toBe(0) - const final = await loadImage(finalFrame) - const canvas = createCanvas(final.width, final.height) - const context = canvas.getContext("2d") - context.drawImage(final, 0, 0) - const pixel = context.getImageData(5, 10, 1, 1).data - expect(pixel[2]).toBeGreaterThan(200) - expect(pixel[0]).toBeLessThan(80) - }) - - test("exports a 60 FPS H.264 MP4 with the off-grid final frame", async () => { - const directory = await mkdtemp(join(tmpdir(), "drive-export-ffmpeg-test-")) - directories.push(directory) - const timeline = join(directory, "timeline.jsonl") - await writeFile( - timeline, - [ - JSON.stringify({ - type: "header", - version: 1, - cols: 4, - rows: 2, - encoding: "base64", - }), - JSON.stringify({ - type: "output", - at_ms: 0, - data: Buffer.from("\x1b[48;2;255;0;0mAAAA").toString("base64"), - }), - JSON.stringify({ - type: "output", - at_ms: 455, - data: Buffer.from("\r\x1b[48;2;0;0;255mBBBB").toString("base64"), - }), - "", - ].join("\n"), - ) - const output = join(directory, "video.mp4") - const progress: number[] = [] - const result = await exportRecording(timeline, output, { onProgress: (percent) => progress.push(percent) }) - const data = await readFile(output) - expect(result.frames).toBe(29) - expect(result.durationMs).toBe(455) - expect(data.subarray(4, 8).toString()).toBe("ftyp") - expect(data.length).toBeGreaterThan(500) - expect(progress).toEqual([10, 20, 30, 40, 50, 60, 70, 80, 90, 100]) - - expect(probeVideo(output)).toEqual(["60/1", "0.483333", "29"]) - - const finalFrame = join(directory, "final.png") - const decoded = Bun.spawnSync([ - "ffmpeg", - "-v", - "error", - "-i", - output, - "-vf", - "reverse", - "-frames:v", - "1", - finalFrame, - ]) - expect(decoded.exitCode).toBe(0) - const image = await loadImage(finalFrame) - const canvas = createCanvas(image.width, image.height) - const context = canvas.getContext("2d") - context.drawImage(image, 0, 0) - const pixel = context.getImageData(9, 19, 1, 1).data - expect(pixel[2]).toBeGreaterThan(200) - expect(pixel[0]).toBeLessThan(80) - }) -} - -function probeVideo(path: string) { - const probe = Bun.spawnSync([ - "ffprobe", - "-v", - "error", - "-select_streams", - "v:0", - "-show_entries", - "stream=avg_frame_rate,duration,nb_frames", - "-of", - "default=noprint_wrappers=1:nokey=1", - path, - ]) - expect(probe.exitCode).toBe(0) - return probe.stdout.toString().trim().split("\n") -} - -function renderImport(env: Record) { - return Bun.spawn([process.execPath, "-e", 'await import("./src/recording/render.ts")'], { - cwd: join(import.meta.dirname, "../.."), - env: { ...Bun.env, ...env }, - stdout: "ignore", - stderr: "pipe", - }) -} diff --git a/packages/drive/test/recording/replay.test.ts b/packages/drive/test/recording/replay.test.ts deleted file mode 100644 index fad12fa9def..00000000000 --- a/packages/drive/test/recording/replay.test.ts +++ /dev/null @@ -1,231 +0,0 @@ -import { afterEach, describe, expect, test } from "vitest" -import { mkdtemp, rm, writeFile } from "node:fs/promises" -import { tmpdir } from "node:os" -import { join } from "node:path" -import { replayRecording } from "../../src/recording/index.js" -import { replay } from "../../src/recording/replay.js" - -const directories: string[] = [] - -afterEach(async () => { - await Promise.all(directories.splice(0).map((path) => rm(path, { recursive: true, force: true }))) -}) - -async function recording(events: Array<[number, string]>, cols = 12, rows = 3) { - const directory = await mkdtemp(join(tmpdir(), "drive-replay-test-")) - directories.push(directory) - const path = join(directory, "timeline.jsonl") - const lines = [ - JSON.stringify({ - type: "header", - version: 1, - cols, - rows, - encoding: "base64", - }), - ...events.map(([at_ms, data]) => - JSON.stringify({ - type: "output", - at_ms, - data: Buffer.from(data).toString("base64"), - }), - ), - ] - await writeFile(path, `${lines.join("\n")}\n`) - return path -} - -async function timeline(records: Array>, cols = 12, rows = 3) { - const directory = await mkdtemp(join(tmpdir(), "drive-replay-test-")) - directories.push(directory) - const path = join(directory, "timeline.jsonl") - const lines = [ - JSON.stringify({ - type: "header", - version: 1, - cols, - rows, - encoding: "base64", - }), - ...records.map((record) => JSON.stringify(record)), - ] - await writeFile(path, `${lines.join("\n")}\n`) - return path -} - -function lineText(frame: Awaited>[number]["frame"], row = 0) { - return frame.lines[row]!.spans.map((span) => span.text) - .join("") - .trimEnd() -} - -describe("replayRecording", () => { - test("samples at the requested FPS and retains the off-grid final state", async () => { - const frames = await replayRecording( - await recording([ - [0, "A"], - [150, "B"], - [450, "C"], - ]), - { fps: 5 }, - ) - expect(frames.map((frame) => frame.atMs)).toEqual([0, 200, 400, 450]) - expect(frames.map((frame) => lineText(frame.frame))).toEqual(["A", "AB", "AB", "ABC"]) - }) - - test("applies all same-time events before taking that sample", async () => { - const frames = await replayRecording( - await recording([ - [0, "A"], - [0, "B"], - ]), - ) - expect(frames).toHaveLength(1) - expect(lineText(frames[0]!.frame)).toBe("AB") - }) - - test("preserves quiet time through the final empty output event", async () => { - const frames = await replayRecording( - await recording([ - [0, "ready"], - [1_000, ""], - ]), - ) - expect(frames).toHaveLength(61) - expect(frames[1]!.atMs).toBeCloseTo(1_000 / 60) - expect(frames.at(-1)!.atMs).toBe(1_000) - expect(frames.every((frame) => lineText(frame.frame) === "ready")).toBe(true) - expect(new Set(frames.map((frame) => frame.frame)).size).toBe(1) - }) - - test("captures terminal state at sample boundaries instead of every event", async () => { - let snapshots = 0 - let dirty = false - const frames = await replay(await recording(Array.from({ length: 101 }, (_, atMs) => [atMs, "x"])), { - fps: 10, - terminalFactory: async (cols, rows) => ({ - write: () => { - dirty = true - }, - resize: () => { - dirty = true - }, - finish: () => false, - snapshot: () => { - snapshots++ - return { - cols, - rows, - cursor: { row: 0, col: 0, visible: false }, - lines: Array.from({ length: rows }, (_, row) => ({ - spans: row === 0 && dirty ? [{ text: "ready", width: 5, fg: 0xffffff, bg: 0x080808, attributes: 0 }] : [], - })), - } - }, - }), - }) - - expect(frames.map((frame) => frame.atMs)).toEqual([0, 100]) - expect(snapshots).toBe(2) - }) - - test("trims blank startup time and rebases the first visible frame", async () => { - const frames = await replayRecording( - await recording([ - [500, " "], - [1_000, "\rready"], - [1_500, ""], - ]), - { fps: 10 }, - ) - - expect(frames.map((frame) => frame.atMs)).toEqual([0, 100, 200, 300, 400, 500]) - expect(frames.every((frame) => lineText(frame.frame) === "ready")).toBe(true) - }) - - test("trims to an explicit origin and holds the final frame to a shared duration", async () => { - const frames = await replayRecording( - await recording([ - [0, "A"], - [500, "B"], - [1_000, "C"], - ]), - { fps: 10, startAtMs: 500, durationMs: 1_000 }, - ) - - expect(frames[0]!.atMs).toBe(0) - expect(lineText(frames[0]!.frame)).toBe("AB") - expect(frames.at(-1)!.atMs).toBe(1_000) - expect(lineText(frames.at(-1)!.frame)).toBe("ABC") - }) - - test("resizes the terminal during replay", async () => { - const frames = await replayRecording( - await timeline( - [ - { - type: "output", - at_ms: 0, - data: Buffer.from("A").toString("base64"), - }, - { type: "resize", at_ms: 100, cols: 8, rows: 4 }, - { - type: "output", - at_ms: 100, - data: Buffer.from("B").toString("base64"), - }, - ], - 4, - 2, - ), - { fps: 10 }, - ) - expect(frames.map((frame) => [frame.atMs, frame.frame.cols, frame.frame.rows])).toEqual([ - [0, 4, 2], - [100, 8, 4], - ]) - expect(lineText(frames.at(-1)!.frame)).toBe("AB") - }) - - test("does not expose a synchronized update before its closing wrapper", async () => { - const frames = await replayRecording( - await recording([ - [0, "old"], - [100, "\x1b[?2026h\rnew"], - [400, "\x1b[?2026l"], - ]), - { fps: 5 }, - ) - expect(frames.map((frame) => frame.atMs)).toEqual([0, 200, 400]) - expect(frames.map((frame) => lineText(frame.frame))).toEqual(["old", "old", "new"]) - }) - - test("tracks output around multiple synchronized updates in one chunk", async () => { - const frames = await replayRecording( - await recording([ - [0, "old"], - [100, "\r\x1b[2Kpre\x1b[?2026h\r\x1b[2Khidden"], - [300, "\x1b[?2026l\r\x1b[2Kshown\x1b[?2026h\r\x1b[2Khidden2"], - [500, "\x1b[?2026l"], - ]), - { fps: 5 }, - ) - expect(frames.map((frame) => frame.atMs)).toEqual([0, 200, 400, 500]) - expect(frames.map((frame) => lineText(frame.frame))).toEqual(["old", "pre", "shown", "hidden2"]) - }) - - test("captures truecolor, styles, cursor, and wide Unicode", async () => { - const styled = "\x1b[1;2;3;4;5;7;8;9;38;2;1;2;3;48;2;4;5;6m界\x1b[0m\x1b[2;4H" - const [sample] = await replayRecording(await recording([[0, styled]], 8, 3)) - const span = sample!.frame.lines[0]!.spans[0]! - expect(span).toMatchObject({ - text: "界", - width: 2, - fg: 0x010203, - bg: 0x040506, - attributes: 255, - }) - expect(sample!.frame.cursor).toEqual({ row: 1, col: 3, visible: true }) - expect(sample!.frame.lines[0]!.spans.reduce((width, value) => width + value.width, 0)).toBe(8) - }) -}) diff --git a/packages/drive/test/script-filesystem.test.ts b/packages/drive/test/script-filesystem.test.ts deleted file mode 100644 index 12fc3035324..00000000000 --- a/packages/drive/test/script-filesystem.test.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { afterEach, describe, expect, test } from "vitest" -import { mkdtemp, rm, symlink } from "node:fs/promises" -import { tmpdir } from "node:os" -import { join } from "node:path" -import * as Effect from "effect/Effect" -import { Errors } from "../src/index.js" -import { createScriptFileSystem } from "../src/script/filesystem.js" - -const roots: string[] = [] - -afterEach(async () => { - await Promise.all(roots.splice(0).map((root) => rm(root, { recursive: true, force: true }))) -}) - -describe("script filesystem", () => { - test("writes relative files and creates their parents", async () => { - const root = await temporary() - const fs = createScriptFileSystem(root) - await Effect.runPromise(fs.writeFile("src/nested/example.ts", "export const value = 1\n")) - expect(await Bun.file(join(root, "src/nested/example.ts")).text()).toBe("export const value = 1\n") - }) - - test("rejects paths outside the project and symbolic links", async () => { - const root = await temporary() - const outside = await temporary() - const fs = createScriptFileSystem(root) - await symlink(outside, join(root, "linked")) - - const outsideError = await Effect.runPromise(fs.writeFile("../outside.ts", "no").pipe(Effect.flip)) - expect(outsideError).toBeInstanceOf(Errors.FileSystemError) - expect(outsideError).toMatchObject({ - _tag: "FileSystemError", - path: "../outside.ts", - message: expect.stringContaining("stay inside"), - }) - await expect(Effect.runPromise(fs.writeFile(join(outside, "absolute.ts"), "no"))).rejects.toThrow( - "must be relative", - ) - await expect(Effect.runPromise(fs.writeFile("linked/outside.ts", "no"))).rejects.toThrow( - "must not contain symbolic links", - ) - }) - - test("reserves Git metadata for declared Git projects", async () => { - const root = await temporary() - const fs = createScriptFileSystem(root, { git: true }) - await expect(Effect.runPromise(fs.writeFile(".GIT/config", "no"))).rejects.toThrow("must not modify Git metadata") - }) -}) - -async function temporary() { - const root = await mkdtemp(join(tmpdir(), "opencode-drive-fs-test-")) - roots.push(root) - return root -} diff --git a/packages/drive/test/script-project.test.ts b/packages/drive/test/script-project.test.ts deleted file mode 100644 index 76fd2bfad24..00000000000 --- a/packages/drive/test/script-project.test.ts +++ /dev/null @@ -1,128 +0,0 @@ -import { afterEach, describe, expect, test } from "vitest" -import { mkdir, mkdtemp, rm } from "node:fs/promises" -import { tmpdir } from "node:os" -import { join } from "node:path" -import { - commitScriptProject, - hasGitMetadata, - initializeScriptProject, - stripGitEnvironment, -} from "../src/script/project.js" - -const roots: string[] = [] - -afterEach(async () => { - await Promise.all(roots.splice(0).map((root) => rm(root, { recursive: true, force: true }))) -}) - -describe("script project", () => { - test("creates a clean Git baseline containing the declared files", async () => { - const root = await temporary() - await mkdir(join(root, ".git")) - await initializeScriptProject(root, { - git: true, - files: { "src/example.ts": "export const value = 1\n" }, - }) - await commitScriptProject(root) - - expect(await Bun.file(join(root, "src/example.ts")).text()).toBe("export const value = 1\n") - expect(await git(root, ["status", "--porcelain"])).toBe("") - expect((await git(root, ["log", "-1", "--format=%s"])).trim()).toBe("Initial commit") - }) - - test("writes project files without requiring Git", async () => { - const root = await temporary() - await initializeScriptProject(root, { files: { "notes.txt": "hello\n" } }) - expect(await Bun.file(join(root, "notes.txt")).text()).toBe("hello\n") - expect(await Bun.file(join(root, ".git")).exists()).toBe(false) - }) - - test("rejects files outside the project and Git metadata", async () => { - const root = await temporary() - await Bun.write(join(root, "existing.txt"), "before\n") - await expect( - initializeScriptProject(root, { - files: { "../outside.ts": "no", "existing.txt": "after\n" }, - }), - ).rejects.toThrow("stay inside") - expect(await Bun.file(join(root, "existing.txt")).text()).toBe("before\n") - await expect(initializeScriptProject(root, { files: { ".GIT/config": "no" } })).rejects.toThrow( - "must not modify Git metadata", - ) - }) - - test("rejects fixture paths that resolve to the same file", async () => { - const root = await temporary() - await expect( - initializeScriptProject(root, { - files: { "same.txt": "one", "./same.txt": "two" }, - }), - ).rejects.toThrow("must resolve to unique files") - expect(await Bun.file(join(root, "same.txt")).exists()).toBe(false) - }) - - test("rejects path-tree conflicts before writing any files", async () => { - const root = await temporary() - await expect( - initializeScriptProject(root, { - files: { - "good.txt": "must not be written", - parent: "file", - "parent/child": "child", - }, - }), - ).rejects.toThrow("file and directory conflicts") - expect(await Bun.file(join(root, "good.txt")).exists()).toBe(false) - await expect(initializeScriptProject(root, { files: { "": "no" } })).rejects.toThrow("must name a file") - await mkdir(join(root, "directory")) - await expect( - initializeScriptProject(root, { - files: { directory: "no", "still-good.txt": "no" }, - }), - ).rejects.toThrow("must not be a directory") - expect(await Bun.file(join(root, "still-good.txt")).exists()).toBe(false) - }) - - test("refuses to replace prepared Git metadata", async () => { - const root = await temporary() - await mkdir(join(root, ".git")) - await Bun.write(join(root, ".git", "config"), "[core]\n") - await expect( - initializeScriptProject(root, { - git: true, - files: { "must-not-be-written.txt": "no\n" }, - }), - ).rejects.toThrow("cannot replace existing Git metadata") - expect(await Bun.file(join(root, "must-not-be-written.txt")).exists()).toBe(false) - }) - - test("removes inherited Git environment variables", () => { - expect( - stripGitEnvironment({ - PATH: "/bin", - GIT_DIR: "/outside", - EMPTY: undefined, - }), - ).toEqual({ - PATH: "/bin", - }) - }) - - test("detects prepared repositories but ignores the empty Drive placeholder", async () => { - const root = await temporary() - await mkdir(join(root, ".git")) - expect(await hasGitMetadata(root)).toBe(false) - await Bun.write(join(root, ".git", "HEAD"), "ref: refs/heads/main\n") - expect(await hasGitMetadata(root)).toBe(true) - }) -}) - -async function temporary() { - const root = await mkdtemp(join(tmpdir(), "opencode-drive-project-test-")) - roots.push(root) - return root -} - -async function git(cwd: string, args: ReadonlyArray) { - return Bun.$`git ${args}`.cwd(cwd).text() -} diff --git a/packages/drive/test/simulation/backend.test.ts b/packages/drive/test/simulation/backend.test.ts deleted file mode 100644 index 5e24a0caffc..00000000000 --- a/packages/drive/test/simulation/backend.test.ts +++ /dev/null @@ -1,289 +0,0 @@ -import { describe, expect, it } from "@effect/vitest" -import { Effect, Fiber, Option, Stream } from "effect" -import { Backend } from "../../src/client/index.js" -import * as SimulationConnector from "../../src/simulation/connector.js" -import { sendResult, startTransportPeer } from "./transport-peer.js" - -const exchanges = { - early: { - id: "exchange-early", - url: "https://api.openai.com/v1/responses", - body: { model: "test-model", input: "early" }, - }, - first: { - id: "exchange-first", - url: "https://api.openai.com/v1/responses", - body: { model: "test-model", input: "first" }, - }, - second: { - id: "exchange-second", - url: "https://api.openai.com/v1/responses", - body: { model: "test-model", input: "second" }, - }, -} as const - -function sendNotification(socket: Bun.ServerWebSocket, method: string, params: unknown) { - socket.send(JSON.stringify({ jsonrpc: "2.0", method, params })) -} - -describe("OpenCode backend simulation transport", () => { - it.live("preserves exact frames, sequential IDs, results, and finish defaults", () => - Effect.gen(function* () { - const peer = startTransportPeer(({ request, socket }) => { - sendResult(socket, request, request.method === "llm.attach" ? { attached: true } : { ok: true }) - }) - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const connection = yield* SimulationConnector.backend(peer.url, { - attach: false, - }) - - const results = [ - yield* connection.attach(), - yield* connection.rpc["llm.chunk"]({ - id: "exchange-1", - items: [ - { type: "textDelta", text: "answer" }, - { type: "reasoningDelta", text: "thinking" }, - { - type: "toolCall", - index: 0, - id: "call-1", - name: "read", - input: { path: "README.md" }, - }, - { type: "raw", chunk: { usage: { outputTokens: 2 } } }, - ], - }), - yield* connection.rpc["llm.finish"]({ id: "exchange-1" }), - yield* connection.rpc["llm.finish"]({ id: "exchange-2", reason: "stop" }), - yield* connection.rpc["llm.finish"]({ id: "exchange-3", reason: "tool-calls" }), - yield* connection.rpc["llm.finish"]({ id: "exchange-4", reason: "length" }), - yield* connection.rpc["llm.finish"]({ id: "exchange-5", reason: "content-filter" }), - yield* connection.rpc["llm.disconnect"]({ id: "exchange-6" }), - ] - - expect(results).toEqual([ - { attached: true }, - { ok: true }, - { ok: true }, - { ok: true }, - { ok: true }, - { ok: true }, - { ok: true }, - { ok: true }, - ]) - - const frames = [ - { jsonrpc: "2.0", id: 1, method: "llm.attach" }, - { - jsonrpc: "2.0", - id: 2, - method: "llm.chunk", - params: { - id: "exchange-1", - items: [ - { type: "textDelta", text: "answer" }, - { type: "reasoningDelta", text: "thinking" }, - { - type: "toolCall", - index: 0, - id: "call-1", - name: "read", - input: { path: "README.md" }, - }, - { type: "raw", chunk: { usage: { outputTokens: 2 } } }, - ], - }, - }, - { - jsonrpc: "2.0", - id: 3, - method: "llm.finish", - params: { id: "exchange-1" }, - }, - { - jsonrpc: "2.0", - id: 4, - method: "llm.finish", - params: { id: "exchange-2", reason: "stop" }, - }, - { - jsonrpc: "2.0", - id: 5, - method: "llm.finish", - params: { id: "exchange-3", reason: "tool-calls" }, - }, - { - jsonrpc: "2.0", - id: 6, - method: "llm.finish", - params: { id: "exchange-4", reason: "length" }, - }, - { - jsonrpc: "2.0", - id: 7, - method: "llm.finish", - params: { id: "exchange-5", reason: "content-filter" }, - }, - { - jsonrpc: "2.0", - id: 8, - method: "llm.disconnect", - params: { id: "exchange-6" }, - }, - ] - - expect(peer.received.map(({ raw }) => raw)).toEqual(frames.map((frame) => JSON.stringify(frame))) - expect(peer.received.map(({ request }) => request)).toEqual(frames) - - expect(Backend.decodeRequest(peer.received[2]!.request)).toEqual({ - jsonrpc: "2.0", - id: 3, - method: "llm.finish", - params: { id: "exchange-1", reason: "stop" }, - }) - expect(peer.received[2]!.raw).toBe( - JSON.stringify({ - jsonrpc: "2.0", - id: 3, - method: "llm.finish", - params: { id: "exchange-1" }, - }), - ) - }), - ) - - it.live("delivers an llm.request sent before the attach response", () => - Effect.gen(function* () { - const peer = startTransportPeer(({ request, socket }) => { - sendNotification(socket, "llm.request", exchanges.early) - sendResult(socket, request, { attached: true }) - }) - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - - const connection = yield* SimulationConnector.backend(peer.url) - const request = yield* Stream.runHead(connection.requests) - expect(request).toEqual(Option.some(exchanges.early)) - }), - ) - - it.live("preserves notification order and ignores unknown notifications without consuming response waiters", () => - Effect.gen(function* () { - const peer = startTransportPeer(({ request, socket }) => { - if (request.method === "llm.attach") { - sendResult(socket, request, { attached: true }) - return - } - sendNotification(socket, "llm.request", exchanges.first) - sendNotification(socket, "server.status", { ready: true }) - sendNotification(socket, "llm.request", exchanges.second) - sendResult(socket, request, { ok: true }) - }) - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - - const connection = yield* SimulationConnector.backend(peer.url) - expect( - yield* connection.rpc["llm.chunk"]({ - id: "exchange-1", - items: [{ type: "textDelta", text: "response" }], - }), - ).toEqual({ ok: true }) - const received = yield* connection.requests.pipe(Stream.take(2), Stream.runCollect) - expect([...received]).toEqual([exchanges.first, exchanges.second]) - }), - ) - - it.live("mirrors tool lifecycle RPCs and preserves invocation-cancellation order", () => - Effect.gen(function* () { - const invocation = { - id: "tool_1", - name: "lookup", - input: { query: "meaning" }, - context: { - sessionID: "ses_tools", - agent: "build", - messageID: "msg_tools", - id: "call_lookup", - }, - } - const peer = startTransportPeer(({ request, socket }) => { - if (request.method === "tool.attach") { - sendNotification(socket, "tool.invocation", invocation) - sendNotification(socket, "tool.cancel", { - id: "tool_1", - reason: "interrupted", - }) - sendResult(socket, request, { attached: true }) - return - } - sendResult(socket, request, { ok: true }) - }) - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const connection = yield* SimulationConnector.backend(peer.url, { - attach: false, - }) - const events = yield* connection.toolEvents.pipe(Stream.take(2), Stream.runCollect, Effect.forkScoped) - const tools = [ - { - name: "lookup", - description: "Look up a value", - inputSchema: { type: "object" }, - options: { codemode: false }, - }, - ] - - yield* connection.attachTools(tools) - yield* connection.updateTool({ - id: "tool_1", - sequence: 0, - update: { structured: { phase: "searching" } }, - }) - yield* connection.finishTool({ - id: "tool_1", - output: { structured: { answer: 42 }, content: [] }, - }) - yield* connection.failTool({ id: "tool_2", message: "failed" }) - - expect([...(yield* Fiber.join(events))]).toEqual([ - { type: "invocation", invocation }, - { - type: "cancellation", - cancellation: { id: "tool_1", reason: "interrupted" }, - }, - ]) - expect(peer.received.map(({ request }) => request)).toEqual([ - { - jsonrpc: "2.0", - id: 1, - method: "tool.attach", - params: { tools }, - }, - { - jsonrpc: "2.0", - id: 2, - method: "tool.update", - params: { - id: "tool_1", - sequence: 0, - update: { structured: { phase: "searching" } }, - }, - }, - { - jsonrpc: "2.0", - id: 3, - method: "tool.finish", - params: { - id: "tool_1", - output: { structured: { answer: 42 }, content: [] }, - }, - }, - { - jsonrpc: "2.0", - id: 4, - method: "tool.fail", - params: { id: "tool_2", message: "failed" }, - }, - ]) - }), - ) -}) diff --git a/packages/drive/test/simulation/connector.test.ts b/packages/drive/test/simulation/connector.test.ts deleted file mode 100644 index 413b6f9680f..00000000000 --- a/packages/drive/test/simulation/connector.test.ts +++ /dev/null @@ -1,139 +0,0 @@ -import { describe, expect, it } from "@effect/vitest" -import { Effect, Option, Schema, Stream } from "effect" -import { SimulationConnector } from "../../src/simulation/connector.js" -import { sendError, sendResult, startTransportPeer } from "./transport-peer.js" - -const state = { - focused: { renderable: 1, editor: true }, - elements: [], -} - -describe("SimulationConnector", () => { - it.live("acquires a generated UI client through the service seam", () => - Effect.gen(function* () { - const peer = startTransportPeer(({ request, socket }) => sendResult(socket, request, state)) - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - - const connector = yield* SimulationConnector.Service - const connection = yield* connector.ui(peer.url) - - expect(connection.endpoint).toBe(peer.url) - expect(connection.compatibility).toMatchObject({ - _tag: "Negotiated", - role: "ui", - protocolVersion: 1, - server: { name: "opencode", version: "test" }, - }) - expect(yield* connection.rpc["ui.state"]()).toEqual(state) - expect(peer.received.map(({ request }) => request)).toEqual([{ jsonrpc: "2.0", id: 1, method: "ui.state" }]) - }).pipe(Effect.provide(SimulationConnector.layer)), - ) - - it.live("reports legacy fallback and rejects it when negotiation is required", () => - Effect.gen(function* () { - const peer = startTransportPeer( - ({ request, socket }) => - request.method === "simulation.handshake" - ? sendError(socket, request, "method not found", -32601) - : sendResult(socket, request, state), - { handshake: false }, - ) - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - - const connector = yield* SimulationConnector.Service - const legacy = yield* connector.ui(peer.url) - expect(legacy.compatibility).toMatchObject({ - _tag: "Legacy", - role: "ui", - profile: "opencode-simulation-jsonrpc-v0", - }) - - const error = yield* connector - .ui(peer.url, { - compatibility: "required", - }) - .pipe(Effect.flip) - expect(error).toMatchObject({ - _tag: "SimulationCompatibilityError", - endpoint: peer.url, - role: "ui", - }) - }).pipe(Effect.provide(SimulationConnector.layer)), - ) - - it.live("attaches after installing a validated backend request stream", () => - Effect.gen(function* () { - const exchange = { - id: "exchange-1", - url: "https://api.openai.com/v1/responses", - body: { model: "test-model" }, - } - const peer = startTransportPeer(({ request, socket }) => { - socket.send( - JSON.stringify({ - jsonrpc: "2.0", - method: "llm.request", - params: exchange, - }), - ) - sendResult(socket, request, { attached: true }) - }) - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - - const connector = yield* SimulationConnector.Service - const connection = yield* connector.backend(peer.url) - const request = yield* Stream.runHead(connection.requests) - const output = { endpoint: connection.endpoint, request } - - expect(output.endpoint).toBe(peer.url) - expect(output.request).toEqual(Option.some(exchange)) - expect(peer.received.map(({ request }) => request)).toEqual([{ jsonrpc: "2.0", id: 1, method: "llm.attach" }]) - }).pipe(Effect.provide(SimulationConnector.layer)), - ) - - it.live("fails the backend request stream for invalid llm.request payloads", () => - Effect.gen(function* () { - const peer = startTransportPeer(({ request, socket }) => { - socket.send( - JSON.stringify({ - jsonrpc: "2.0", - method: "llm.request", - params: { id: 1 }, - }), - ) - sendResult(socket, request, { attached: true }) - }) - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - - const connector = yield* SimulationConnector.Service - const connection = yield* connector.backend(peer.url) - const error = yield* Stream.runHead(connection.requests).pipe(Effect.flip) - expect(Schema.isSchemaError(error)).toBe(true) - }).pipe(Effect.provide(SimulationConnector.layer)), - ) - - it.live("keeps tool capabilities optional until dynamic tools are attached", () => - Effect.gen(function* () { - const peer = startTransportPeer( - ({ request, socket }) => - sendResult(socket, request, request.method === "llm.attach" ? { attached: true } : { ok: true }), - { - capabilities: (offered) => offered.filter((capability) => !capability.startsWith("tool.")), - }, - ) - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - - const connection = yield* SimulationConnector.backend(peer.url) - expect(connection.compatibility).toMatchObject({ - _tag: "Negotiated", - role: "backend", - }) - expect(yield* connection.attachTools([]).pipe(Effect.flip)).toMatchObject({ - _tag: "SimulationCompatibilityError", - role: "backend", - message: expect.stringContaining("tool.attach"), - }) - expect(peer.received.map(({ request }) => request.method)).toEqual(["llm.attach"]) - }).pipe(Effect.provide(SimulationConnector.layer)), - ) -}) diff --git a/packages/drive/test/simulation/lifecycle.test.ts b/packages/drive/test/simulation/lifecycle.test.ts deleted file mode 100644 index d5a2ad7be89..00000000000 --- a/packages/drive/test/simulation/lifecycle.test.ts +++ /dev/null @@ -1,124 +0,0 @@ -import { describe, expect, it, test } from "@effect/vitest" -import { Effect, Exit, Fiber, Scope } from "effect" -import { SimulationProtocol, defaultBackendPort, defaultPort } from "../../src/client/index.js" -import * as SimulationConnector from "../../src/simulation/connector.js" -import { type ReceivedRequest, sendError, sendResult, startTransportPeer } from "./transport-peer.js" - -function captureRequests() { - const queued: ReceivedRequest[] = [] - const waiters: Array<(request: ReceivedRequest) => void> = [] - - return { - onRequest(request: ReceivedRequest) { - const waiter = waiters.shift() - if (waiter === undefined) queued.push(request) - else waiter(request) - }, - next(): Promise { - const request = queued.shift() - if (request !== undefined) return Promise.resolve(request) - return new Promise((resolve) => waiters.push(resolve)) - }, - } -} - -describe("OpenCode simulation transport lifecycle", () => { - test("exports default ports and the protocol namespaces", () => { - expect(defaultPort).toBe(40900) - expect(defaultBackendPort).toBe(40950) - expect(Object.keys(SimulationProtocol).sort()).toEqual(["Backend", "Frontend", "Handshake", "JsonRpc"]) - }) - - it.live("correlates concurrent UI responses by ID and ignores unknown IDs", () => - Effect.gen(function* () { - const capture = captureRequests() - const peer = startTransportPeer(capture.onRequest) - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const { rpc } = yield* SimulationConnector.ui(peer.url) - const state = { focused: { renderable: 7, editor: true }, elements: [] } - - const stateResult = yield* Effect.forkChild(rpc["ui.state"]()) - const stateRequest = yield* Effect.promise(capture.next) - const matchesResult = yield* Effect.forkChild(rpc["ui.matches"]({ text: "ready" })) - const matchesRequest = yield* Effect.promise(capture.next) - - expect(stateRequest.request.method).toBe("ui.state") - expect(matchesRequest.request.method).toBe("ui.matches") - - stateRequest.socket.send(JSON.stringify({ jsonrpc: "2.0", id: 999, result: "unknown" })) - sendResult(matchesRequest.socket, matchesRequest.request, true) - sendResult(stateRequest.socket, stateRequest.request, state) - - expect(yield* Fiber.join(matchesResult)).toBe(true) - expect(yield* Fiber.join(stateResult)).toEqual(state) - }), - ) - - it.live("maps JSON-RPC errors to SimulationRequestError with the originating method", () => - Effect.gen(function* () { - const capture = captureRequests() - const peer = startTransportPeer(capture.onRequest) - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const { rpc } = yield* SimulationConnector.ui(peer.url) - - const result = yield* Effect.forkChild(rpc["ui.matches"]({ text: "missing" }).pipe(Effect.flip)) - const received = yield* Effect.promise(capture.next) - sendError(received.socket, received.request, "renderer unavailable") - - expect(yield* Fiber.join(result)).toMatchObject({ - _tag: "SimulationRequestError", - message: "renderer unavailable", - method: "ui.matches", - }) - }), - ) - - it.live("peer close rejects every pending UI request", () => - Effect.gen(function* () { - const capture = captureRequests() - const peer = startTransportPeer(capture.onRequest) - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const { rpc } = yield* SimulationConnector.ui(peer.url) - - const stateResult = yield* Effect.forkChild(Effect.exit(rpc["ui.state"]())) - yield* Effect.promise(capture.next) - const matchesResult = yield* Effect.forkChild(Effect.exit(rpc["ui.matches"]({ text: "ready" }))) - yield* Effect.promise(capture.next) - - yield* Effect.promise(() => peer.stop()) - - for (const exit of [yield* Fiber.join(stateResult), yield* Fiber.join(matchesResult)]) { - expect(Exit.isFailure(exit)).toBe(true) - expect(String(exit)).toContain("connection closed") - } - }), - ) - - it.live("backend closed resolves when its peer closes", () => - Effect.gen(function* () { - const peer = startTransportPeer(({ request, socket }) => sendResult(socket, request, { attached: true })) - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const connection = yield* SimulationConnector.backend(peer.url) - - yield* Effect.promise(() => peer.stop()) - yield* connection.closed - }), - ) - - it.live("closing the connection scope rejects pending calls", () => - Effect.gen(function* () { - const capture = captureRequests() - const peer = startTransportPeer(capture.onRequest) - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const scope = yield* Scope.make() - const { rpc } = yield* SimulationConnector.ui(peer.url).pipe(Scope.provide(scope)) - - const pending = yield* Effect.forkChild(Effect.exit(rpc["ui.state"]())) - yield* Effect.promise(capture.next) - yield* Scope.close(scope, Exit.void) - - const exit = yield* Fiber.join(pending) - expect(Exit.isFailure(exit)).toBe(true) - }), - ) -}) diff --git a/packages/drive/test/simulation/opencode-protocol.test.ts b/packages/drive/test/simulation/opencode-protocol.test.ts deleted file mode 100644 index c98a1fe28b1..00000000000 --- a/packages/drive/test/simulation/opencode-protocol.test.ts +++ /dev/null @@ -1,139 +0,0 @@ -import { describe, expect, it } from "@effect/vitest" -import { Effect } from "effect" -import { RpcClient, RpcClientError, RpcMessage } from "effect/unstable/rpc" -import * as OpenCodeRpcProtocol from "../../src/simulation/opencode-protocol.js" -import { SimulationRequestError, UiRpcs } from "@opencode-ai/protocol/simulation" -import { sendError, sendResult, startTransportPeer } from "./transport-peer.js" - -const state = { - focused: { renderable: 1, editor: true }, - elements: [], -} - -describe("OpenCode Effect RPC compatibility protocol", () => { - it.live("drives generated UI clients over exact OpenCode JSON-RPC", () => { - const notifications: unknown[] = [] - const peer = startTransportPeer(({ request, socket }) => { - if (request.method === "ui.matches") { - sendError(socket, request, "match failed") - return - } - if (request.method === "ui.state") - socket.send( - JSON.stringify({ - jsonrpc: "2.0", - method: "server.status", - params: { ready: true }, - }), - ) - sendResult(socket, request, state) - }) - - return Effect.gen(function* () { - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const protocol = yield* OpenCodeRpcProtocol.make(peer.url, { - onNotification: (notification) => Effect.sync(() => notifications.push(notification)), - }) - const client = yield* RpcClient.make(UiRpcs).pipe(Effect.provideService(RpcClient.Protocol, protocol)) - - expect(yield* client["ui.state"]()).toEqual(state) - expect(yield* client["ui.press"]({ key: "right" })).toEqual(state) - expect(yield* client["ui.press"]({ key: "down", modifiers: { meta: true } })).toEqual(state) - expect(yield* client["ui.press"]({ key: "tab", modifiers: { ctrl: true } })).toEqual(state) - - const error = yield* client["ui.matches"]({ text: "fail" }).pipe(Effect.flip) - expect(error).toBeInstanceOf(SimulationRequestError) - expect(error).toMatchObject({ - method: "ui.matches", - code: -32000, - message: "match failed", - }) - - const firstId = peer.received[0]!.request.id - expect(typeof firstId).toBe("number") - expect(notifications).toEqual([{ method: "server.status", params: { ready: true } }]) - expect(peer.received.map(({ request }) => request)).toEqual([ - { jsonrpc: "2.0", id: firstId, method: "ui.state" }, - { - jsonrpc: "2.0", - id: firstId + 1, - method: "ui.press", - params: { key: "\u001b[C" }, - }, - { - jsonrpc: "2.0", - id: firstId + 2, - method: "ui.press", - params: { key: "\u001b[1;3B" }, - }, - { - jsonrpc: "2.0", - id: firstId + 3, - method: "ui.press", - params: { key: "\u001b[9;5u" }, - }, - { - jsonrpc: "2.0", - id: firstId + 4, - method: "ui.matches", - params: { text: "fail" }, - }, - ]) - }) - }) - - it.live("correlates multiple generated clients through local wire IDs", () => { - const secondState = { - focused: { renderable: 2, editor: false }, - elements: [], - } - const received: Array< - Parameters[1] & { - readonly socket: Bun.ServerWebSocket - } - > = [] - const peer = startTransportPeer(({ request, socket }) => { - received.push({ ...request, socket }) - if (received.length !== 2) return - sendResult(received[1]!.socket, received[1]!, secondState) - sendResult(received[0]!.socket, received[0]!, state) - }) - - return Effect.gen(function* () { - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const protocol = yield* OpenCodeRpcProtocol.make(peer.url) - const options = { - generateRequestId: () => RpcMessage.RequestId(7), - } - const first = yield* RpcClient.make(UiRpcs, options).pipe(Effect.provideService(RpcClient.Protocol, protocol)) - const second = yield* RpcClient.make(UiRpcs, options).pipe(Effect.provideService(RpcClient.Protocol, protocol)) - const results = yield* Effect.all([first["ui.state"](), second["ui.state"]()], { concurrency: "unbounded" }) - - expect(results).toEqual([state, secondState]) - expect(peer.received.map(({ request }) => request)).toEqual([ - { jsonrpc: "2.0", id: 1, method: "ui.state" }, - { jsonrpc: "2.0", id: 2, method: "ui.state" }, - ]) - }) - }) - - it.live("persists fatal protocol failures for later requests", () => { - const peer = startTransportPeer(({ request, socket }) => - socket.send(JSON.stringify({ jsonrpc: "2.0", id: request.id })), - ) - - return Effect.gen(function* () { - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const protocol = yield* OpenCodeRpcProtocol.make(peer.url) - const client = yield* RpcClient.make(UiRpcs).pipe(Effect.provideService(RpcClient.Protocol, protocol)) - - const first = yield* client["ui.state"]().pipe(Effect.flip) - expect(first).toBeInstanceOf(RpcClientError.RpcClientError) - expect(first.message).toContain("JSON-RPC response must contain result or error") - - const second = yield* client["ui.state"]().pipe(Effect.flip) - expect(second).toBe(first) - expect(peer.received).toHaveLength(1) - }) - }) -}) diff --git a/packages/drive/test/simulation/protocol.test.ts b/packages/drive/test/simulation/protocol.test.ts deleted file mode 100644 index dc8939fe154..00000000000 --- a/packages/drive/test/simulation/protocol.test.ts +++ /dev/null @@ -1,98 +0,0 @@ -import { expect, it } from "@effect/vitest" -import { Backend } from "@opencode-ai/protocol/simulation" - -it("decodes the canonical dynamic tool lifecycle", () => { - expect( - Backend.decodeRequest({ - jsonrpc: "2.0", - id: 1, - method: "tool.attach", - params: { - tools: [ - { - name: "search", - description: "Search GitHub", - inputSchema: { type: "object" }, - outputSchema: { type: "object" }, - permission: "search", - options: { namespace: "github.api", codemode: false }, - }, - ], - }, - }), - ).toMatchObject({ method: "tool.attach" }) - expect( - Backend.decodeRequest({ - jsonrpc: "2.0", - id: 2, - method: "tool.update", - params: { - id: "tool_1", - sequence: 0, - update: { - structured: { phase: "searching" }, - content: [{ type: "text", text: "Searching" }], - }, - }, - }), - ).toMatchObject({ method: "tool.update" }) -}) - -it("rejects unsafe, colliding, and reserved exposed names", () => { - const attach = (tools: ReadonlyArray) => - Backend.decodeRequest({ - jsonrpc: "2.0", - id: 1, - method: "tool.attach", - params: { tools }, - }) - const tool = { - name: "search", - description: "Search", - inputSchema: { type: "object" }, - } - - expect(() => attach([{ ...tool, name: "unsafe.name" }])).toThrow() - expect(() => - attach([ - { ...tool, options: { namespace: "a.b" } }, - { ...tool, options: { namespace: "a_b" } }, - ]), - ).toThrow() - expect(() => - attach([ - { - ...tool, - name: "execute", - options: { codemode: false }, - }, - ]), - ).toThrow() -}) - -it("decodes provider-neutral partial tool input chunks", () => { - expect( - Backend.Item.make({ - type: "toolInputStart", - index: 0, - id: "call_lookup", - name: "lookup", - }), - ).toEqual({ - type: "toolInputStart", - index: 0, - id: "call_lookup", - name: "lookup", - }) - expect( - Backend.Item.make({ - type: "toolInputDelta", - index: 0, - text: '{"query":"meaning"}', - }), - ).toEqual({ - type: "toolInputDelta", - index: 0, - text: '{"query":"meaning"}', - }) -}) diff --git a/packages/drive/test/simulation/rpc.test.ts b/packages/drive/test/simulation/rpc.test.ts deleted file mode 100644 index b5a29f5db10..00000000000 --- a/packages/drive/test/simulation/rpc.test.ts +++ /dev/null @@ -1,138 +0,0 @@ -import { describe, expect, it } from "@effect/vitest" -import { Effect } from "effect" -import { RpcTest } from "effect/unstable/rpc" -import { BackendRpcs, SimulationRequestError, UiRpcs } from "@opencode-ai/protocol/simulation" - -const state = { - focused: { renderable: 1, editor: true }, - elements: [], -} - -describe("OpenCode simulation RPC contracts", () => { - it.effect("generates typed UI clients over the canonical schemas", () => { - const calls: Array<{ readonly method: string; readonly payload: unknown }> = [] - return Effect.gen(function* () { - const client = yield* RpcTest.makeClient(UiRpcs).pipe( - Effect.provide( - UiRpcs.toLayer({ - "ui.state": (payload) => { - calls.push({ method: "ui.state", payload }) - return Effect.succeed(state) - }, - "ui.matches": (payload) => { - calls.push({ method: "ui.matches", payload }) - if (payload.text === "fail") - return Effect.fail( - new SimulationRequestError({ - method: "ui.matches", - code: -32000, - message: "match failed", - }), - ) - return Effect.succeed(true) - }, - "ui.recording.finish": (payload) => { - calls.push({ method: "ui.recording.finish", payload }) - return Effect.succeed("/tmp/recording.jsonl") - }, - "ui.type": (payload) => { - calls.push({ method: "ui.type", payload }) - return Effect.succeed(state) - }, - "ui.press": () => Effect.succeed(state), - "ui.enter": () => Effect.succeed(state), - "ui.arrow": () => Effect.succeed(state), - "ui.focus": () => Effect.succeed(state), - "ui.click": () => Effect.succeed(state), - "ui.resize": () => Effect.succeed(state), - }), - ), - ) - - expect(yield* client["ui.state"]()).toEqual(state) - expect(yield* client["ui.matches"]({ text: "ready" })).toBe(true) - const error = yield* client["ui.matches"]({ text: "fail" }).pipe(Effect.flip) - expect(error).toBeInstanceOf(SimulationRequestError) - expect(error).toMatchObject({ - method: "ui.matches", - code: -32000, - message: "match failed", - }) - expect(yield* client["ui.recording.finish"]()).toBe("/tmp/recording.jsonl") - expect(yield* client["ui.type"]({ text: "hello" })).toEqual(state) - - expect(calls).toEqual([ - { method: "ui.state", payload: undefined }, - { method: "ui.matches", payload: { text: "ready" } }, - { method: "ui.matches", payload: { text: "fail" } }, - { method: "ui.recording.finish", payload: undefined }, - { method: "ui.type", payload: { text: "hello" } }, - ]) - }) - }) - - it.effect("generates backend clients with optional finish reasons", () => { - const calls: Array<{ readonly method: string; readonly payload: unknown }> = [] - return Effect.gen(function* () { - const client = yield* RpcTest.makeClient(BackendRpcs).pipe( - Effect.provide( - BackendRpcs.toLayer({ - "llm.attach": (payload) => { - calls.push({ method: "llm.attach", payload }) - return Effect.succeed({ attached: true as const }) - }, - "llm.chunk": (payload) => { - calls.push({ method: "llm.chunk", payload }) - return Effect.succeed({ ok: true as const }) - }, - "llm.finish": (payload) => { - calls.push({ method: "llm.finish", payload }) - return Effect.succeed({ ok: true as const }) - }, - "llm.disconnect": (payload) => { - calls.push({ method: "llm.disconnect", payload }) - return Effect.succeed({ ok: true as const }) - }, - }), - ), - ) - - expect(yield* client["llm.attach"]()).toEqual({ attached: true }) - expect( - yield* client["llm.chunk"]({ - id: "exchange-1", - items: [{ type: "textDelta", text: "hello" }], - }), - ).toEqual({ ok: true }) - expect(yield* client["llm.finish"]({ id: "exchange-1" })).toEqual({ - ok: true, - }) - expect( - yield* client["llm.finish"]({ - id: "exchange-2", - reason: "length", - }), - ).toEqual({ ok: true }) - expect(yield* client["llm.disconnect"]({ id: "exchange-3" })).toEqual({ - ok: true, - }) - - expect(calls).toEqual([ - { method: "llm.attach", payload: undefined }, - { - method: "llm.chunk", - payload: { - id: "exchange-1", - items: [{ type: "textDelta", text: "hello" }], - }, - }, - { method: "llm.finish", payload: { id: "exchange-1" } }, - { - method: "llm.finish", - payload: { id: "exchange-2", reason: "length" }, - }, - { method: "llm.disconnect", payload: { id: "exchange-3" } }, - ]) - }) - }) -}) diff --git a/packages/drive/test/simulation/transport-peer.ts b/packages/drive/test/simulation/transport-peer.ts deleted file mode 100644 index 1f230388930..00000000000 --- a/packages/drive/test/simulation/transport-peer.ts +++ /dev/null @@ -1,80 +0,0 @@ -export interface WireRequest { - readonly jsonrpc: "2.0" - readonly id: number - readonly method: string - readonly params?: unknown -} - -export interface ReceivedRequest { - readonly raw: string - readonly request: WireRequest - readonly socket: Bun.ServerWebSocket -} - -export function startTransportPeer( - onRequest: (received: ReceivedRequest) => void, - options?: { - readonly handshake?: boolean - readonly capabilities?: (offered: ReadonlyArray) => ReadonlyArray - }, -) { - const received: ReceivedRequest[] = [] - const server = Bun.serve({ - hostname: "127.0.0.1", - port: 0, - fetch(request, server) { - if (server.upgrade(request, { data: undefined })) return - return new Response("simulation transport test peer", { status: 426 }) - }, - websocket: { - message(socket, message) { - const raw = String(message) - const value = { raw, request: JSON.parse(raw) as WireRequest, socket } - if (value.request.method === "simulation.handshake" && options?.handshake !== false) { - const params = value.request.params as { - readonly expectedRole: "ui" | "backend" - readonly requiredCapabilities: ReadonlyArray - readonly optionalCapabilities: ReadonlyArray - } - sendResult(socket, value.request, { - protocolVersion: 1, - role: params.expectedRole, - server: { name: "opencode", version: "test" }, - capabilities: options?.capabilities?.([...params.requiredCapabilities, ...params.optionalCapabilities]) ?? [ - ...params.requiredCapabilities, - ...params.optionalCapabilities, - ], - }) - return - } - received.push(value) - onRequest(value) - }, - }, - }) - - return { - url: `ws://127.0.0.1:${server.port}`, - received, - stop: () => server.stop(true), - } -} - -export function sendResult(socket: Bun.ServerWebSocket, request: WireRequest, result: unknown) { - socket.send(JSON.stringify({ jsonrpc: "2.0", id: request.id, result })) -} - -export function sendError( - socket: Bun.ServerWebSocket, - request: WireRequest, - message: string, - code = -32000, -) { - socket.send( - JSON.stringify({ - jsonrpc: "2.0", - id: request.id, - error: { code, message }, - }), - ) -} diff --git a/packages/drive/test/simulation/ui.test.ts b/packages/drive/test/simulation/ui.test.ts deleted file mode 100644 index 79549c544c5..00000000000 --- a/packages/drive/test/simulation/ui.test.ts +++ /dev/null @@ -1,134 +0,0 @@ -import { describe, expect, it, test } from "@effect/vitest" -import { Effect } from "effect" -import { Frontend } from "../../src/client/index.js" -import * as SimulationConnector from "../../src/simulation/connector.js" -import { sendResult, startTransportPeer } from "./transport-peer.js" - -const state: Frontend.State = { - focused: { renderable: 1, editor: true }, - elements: [], -} - -const snapshot: Frontend.SemanticSnapshot = { - format: "opencode-ui-snapshot-v1", - nodes: [{ id: "prompt", role: "textbox", element: 1, focused: true }], -} - -describe("OpenCode UI simulation transport", () => { - it.live("preserves every UI call's exact JSON-RPC frame", () => - Effect.gen(function* () { - const peer = startTransportPeer(({ request, socket }) => { - if (request.method === "ui.snapshot") { - sendResult(socket, request, snapshot) - return - } - if (request.method === "ui.matches") { - sendResult(socket, request, true) - return - } - if (request.method === "ui.recording.finish") { - sendResult(socket, request, "/tmp/recording.jsonl") - return - } - sendResult(socket, request, state) - }) - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const { rpc } = yield* SimulationConnector.ui(peer.url) - - expect(yield* rpc["ui.state"]()).toEqual(state) - expect(yield* rpc["ui.snapshot"]()).toEqual(snapshot) - expect(yield* rpc["ui.matches"]({ text: "needle" })).toBe(true) - expect(yield* rpc["ui.recording.finish"]()).toBe("/tmp/recording.jsonl") - expect(yield* rpc["ui.type"]({ text: "hello" })).toEqual(state) - expect(yield* rpc["ui.press"]({ key: "x" })).toEqual(state) - expect(yield* rpc["ui.press"]({ key: "x", modifiers: { ctrl: true, shift: false } })).toEqual(state) - expect(yield* rpc["ui.press"]({ key: "escape" })).toEqual(state) - expect(yield* rpc["ui.enter"]()).toEqual(state) - expect(yield* rpc["ui.arrow"]({ direction: "left" })).toEqual(state) - expect(yield* rpc["ui.focus"]({ target: 7 })).toEqual(state) - expect(yield* rpc["ui.click"]({ target: 7, x: 3, y: 2 })).toEqual(state) - expect(yield* rpc["ui.resize"]({ cols: 120, rows: 40 })).toEqual(state) - - expect(peer.received.map(({ request }) => request)).toEqual([ - { jsonrpc: "2.0", id: 1, method: "ui.state" }, - { jsonrpc: "2.0", id: 2, method: "ui.snapshot" }, - { - jsonrpc: "2.0", - id: 3, - method: "ui.matches", - params: { text: "needle" }, - }, - { jsonrpc: "2.0", id: 4, method: "ui.recording.finish" }, - { - jsonrpc: "2.0", - id: 5, - method: "ui.type", - params: { text: "hello" }, - }, - { - jsonrpc: "2.0", - id: 6, - method: "ui.press", - params: { key: "x" }, - }, - { - jsonrpc: "2.0", - id: 7, - method: "ui.press", - params: { key: "x", modifiers: { ctrl: true, shift: false } }, - }, - { - jsonrpc: "2.0", - id: 8, - method: "ui.press", - params: { key: "escape" }, - }, - { jsonrpc: "2.0", id: 9, method: "ui.enter" }, - { - jsonrpc: "2.0", - id: 10, - method: "ui.arrow", - params: { direction: "left" }, - }, - { - jsonrpc: "2.0", - id: 11, - method: "ui.focus", - params: { target: 7 }, - }, - { - jsonrpc: "2.0", - id: 12, - method: "ui.click", - params: { target: 7, x: 3, y: 2 }, - }, - { - jsonrpc: "2.0", - id: 13, - method: "ui.resize", - params: { cols: 120, rows: 40 }, - }, - ]) - - for (const { request } of peer.received) expect(Frontend.decodeRequest(request)).toEqual(request) - }), - ) - - test("rejects schema-invalid UI requests", () => { - expect(() => Frontend.decodeRequest({ jsonrpc: "2.0", method: "ui.type", params: {} })).toThrow() - expect(() => - Frontend.decodeRequest({ - jsonrpc: "2.0", - method: "ui.arrow", - params: { direction: "diagonal" }, - }), - ).toThrow() - expect(() => - Frontend.decodeRequest({ - jsonrpc: "2.0", - method: "ui.press", - params: { key: "x", modifiers: { ctrl: "true" } }, - }), - ).toThrow() - }) -}) diff --git a/packages/drive/test/tool/controller.test.ts b/packages/drive/test/tool/controller.test.ts deleted file mode 100644 index e5a7ee618e7..00000000000 --- a/packages/drive/test/tool/controller.test.ts +++ /dev/null @@ -1,952 +0,0 @@ -import { expect, it } from "@effect/vitest" -import { Deferred, Effect } from "effect" -import * as Exit from "effect/Exit" -import * as Fiber from "effect/Fiber" -import * as Scope from "effect/Scope" -import * as ToolController from "../../src/tool/controller.js" -import { Failure } from "../../src/tool/index.js" -import plugin from "../../src/tool/plugin.js" -import type { OpenCodeConfig } from "../../src/script/types.js" - -interface RegisteredTool { - readonly name: string - readonly execute: ( - input: unknown, - context: { readonly sessionID: string; readonly id: string }, - ) => Effect.Effect< - { - readonly structured: unknown - readonly content: ReadonlyArray<{ readonly type: string; readonly text: string }> - }, - unknown - > -} - -it.effect("streams progress before shell success and failure", () => - Effect.scoped( - Effect.gen(function* () { - const controller = yield* ToolController.make((tools) => { - tools.handle("shell", ({ id, input, index, progress }) => - Effect.gen(function* () { - yield* progress(`running ${id}/${index}: ${input.command}\n`) - if (input.command === "fail") return yield* new Failure({ message: "controlled failure" }) - return { output: "controlled success\n", exit: 7 } - }), - ) - }) - const config: OpenCodeConfig = { plugins: ["existing-plugin"] } - controller.configure(config) - const plugins = config.plugins as Array - expect(plugins[0]).toBe("existing-plugin") - const injected = plugins[1] as { - package: string - options: { endpoint: string; token: string; tools: string[] } - } - expect(injected.package.startsWith("/")).toBe(true) - expect(injected.options.tools).toEqual(["shell"]) - - const invoke = (command: string) => - Effect.promise(async () => { - const response = await fetch(`${injected.options.endpoint}/execute/shell`, { - method: "POST", - headers: { - authorization: `Bearer ${injected.options.token}`, - "content-type": "application/json", - }, - body: JSON.stringify({ - input: { command }, - context: { callID: `call_${command}` }, - }), - }) - return (await response.text()) - .trim() - .split("\n") - .map((line) => JSON.parse(line)) - }) - - expect(yield* invoke("succeed")).toEqual([ - { type: "progress", result: { output: "running call_succeed/0: succeed\n" } }, - { type: "success", result: { output: "controlled success\n", exit: 7 } }, - ]) - expect(yield* invoke("fail")).toEqual([ - { type: "progress", result: { output: "running call_fail/1: fail\n" } }, - { type: "failure", message: "controlled failure" }, - ]) - }), - ), -) - -it.effect("does not inject a plugin without handlers", () => - Effect.scoped( - Effect.gen(function* () { - const controller = yield* ToolController.make() - const config: OpenCodeConfig = {} - controller.configure(config) - expect(ToolController.composeSetup(controller, undefined)).toBeUndefined() - expect(config).toEqual({}) - }), - ), -) - -it.effect("controls parallel calls independently by tool call ID", () => - Effect.scoped( - Effect.gen(function* () { - const controller = yield* ToolController.make(["shell"]) - const config: OpenCodeConfig = {} - controller.configure(config) - const injected = ( - config.plugins as Array<{ - options: { endpoint: string; token: string } - }> - )[0]! - const shells = yield* controller.controls.control("shell") - const invoke = (id: string, command: string) => - Effect.promise(async () => { - const response = await fetch(`${injected.options.endpoint}/execute/shell`, { - method: "POST", - headers: { - authorization: `Bearer ${injected.options.token}`, - "content-type": "application/json", - }, - body: JSON.stringify({ input: { command }, context: { callID: id } }), - }) - return (await response.text()) - .trim() - .split("\n") - .map((line) => JSON.parse(line)) - }) - - const buildResponse = yield* invoke("call_build", "bun run build").pipe(Effect.forkScoped) - const testResponse = yield* invoke("call_test", "bun run test").pipe(Effect.forkScoped) - const test = yield* shells.take("call_test") - const build = yield* shells.take("call_build") - - expect(test).toMatchObject({ id: "call_test", input: { command: "bun run test" } }) - expect(build).toMatchObject({ id: "call_build", input: { command: "bun run build" } }) - expect([build.index, test.index].sort((left, right) => left - right)).toEqual([0, 1]) - expect(yield* shells.take("call_test").pipe(Effect.flip)).toMatchObject({ - _tag: "OpenCodeDrive.ToolControlError", - message: "shell tool call already claimed: call_test", - }) - - yield* test.progress("testing\n") - yield* build.progress("building\n") - yield* test.succeed({ output: "tests passed\n", exit: 0 }) - yield* build.fail("build failed") - - expect(yield* Fiber.join(testResponse)).toEqual([ - { type: "progress", result: { output: "testing\n" } }, - { type: "success", result: { output: "tests passed\n", exit: 0 } }, - ]) - expect(yield* Fiber.join(buildResponse)).toEqual([ - { type: "progress", result: { output: "building\n" } }, - { type: "failure", message: "build failed" }, - ]) - expect(yield* test.fail("late failure").pipe(Effect.flip)).toMatchObject({ - _tag: "OpenCodeDrive.ToolControlError", - operation: "fail", - reason: "already-settled", - message: "shell tool call call_test is settled", - }) - expect(yield* test.progress("late progress\n").pipe(Effect.flip)).toMatchObject({ - _tag: "OpenCodeDrive.ToolControlError", - operation: "progress", - reason: "already-settled", - }) - const repeatedResponse = yield* invoke("call_test", "bun run test again").pipe(Effect.forkScoped) - const repeated = yield* shells.take("call_test") - expect(repeated).toMatchObject({ id: "call_test", input: { command: "bun run test again" } }) - yield* repeated.succeed({ output: "tests passed again\n", exit: 0 }) - expect(yield* Fiber.join(repeatedResponse)).toEqual([ - { type: "success", result: { output: "tests passed again\n", exit: 0 } }, - ]) - }), - ), -) - -it.effect("retains call ID ownership while rejecting concurrent duplicates", () => - Effect.scoped( - Effect.gen(function* () { - const controller = yield* ToolController.make(["shell"]) - const config: OpenCodeConfig = {} - controller.configure(config) - const injected = ( - config.plugins as Array<{ - options: { endpoint: string; token: string } - }> - )[0]! - const shells = yield* controller.controls.control("shell") - const invoke = (command: string) => - Effect.promise(async () => { - const response = await fetch(`${injected.options.endpoint}/execute/shell`, { - method: "POST", - headers: { - authorization: `Bearer ${injected.options.token}`, - "content-type": "application/json", - }, - body: JSON.stringify({ - input: { command }, - context: { callID: "call_same" }, - }), - }) - return (await response.text()) - .trim() - .split("\n") - .map((line) => JSON.parse(line)) - }) - - const firstResponse = yield* invoke("first").pipe(Effect.forkScoped) - const first = yield* shells.take("call_same") - expect(yield* invoke("second")).toEqual([{ type: "failure", message: "duplicate shell tool call ID: call_same" }]) - expect(yield* shells.take("call_same").pipe(Effect.flip)).toMatchObject({ - reason: "already-claimed", - callID: "call_same", - }) - expect(yield* invoke("third")).toEqual([{ type: "failure", message: "duplicate shell tool call ID: call_same" }]) - - yield* first.succeed({ output: "first complete\n", exit: 0 }) - yield* Fiber.join(firstResponse) - const reusedResponse = yield* invoke("reused").pipe(Effect.forkScoped) - const reused = yield* shells.take("call_same") - expect(reused.input.command).toBe("reused") - yield* reused.succeed({ output: "reused complete\n", exit: 0 }) - yield* Fiber.join(reusedResponse) - }), - ), -) - -it.effect("gives an exact call ID waiter precedence over a generic waiter", () => - Effect.scoped( - Effect.gen(function* () { - const controller = yield* ToolController.make(["shell"]) - const config: OpenCodeConfig = {} - controller.configure(config) - const injected = ( - config.plugins as Array<{ - options: { endpoint: string; token: string } - }> - )[0]! - const shells = yield* controller.controls.control("shell") - const generic = yield* shells.take().pipe(Effect.forkScoped) - const exact = yield* shells.take("call_b").pipe(Effect.forkScoped) - const invoke = (id: string) => - Effect.promise(async () => { - const response = await fetch(`${injected.options.endpoint}/execute/shell`, { - method: "POST", - headers: { - authorization: `Bearer ${injected.options.token}`, - "content-type": "application/json", - }, - body: JSON.stringify({ input: { command: id }, context: { callID: id } }), - }) - return (await response.text()) - .trim() - .split("\n") - .map((line) => JSON.parse(line)) - }) - const responseB = yield* invoke("call_b").pipe(Effect.forkScoped) - const responseA = yield* invoke("call_a").pipe(Effect.forkScoped) - - const callB = yield* Fiber.join(exact) - const callA = yield* Fiber.join(generic) - expect(callB.id).toBe("call_b") - expect(callA.id).toBe("call_a") - yield* callB.succeed({ output: "b\n" }) - yield* callA.succeed({ output: "a\n" }) - yield* Fiber.join(responseB) - yield* Fiber.join(responseA) - }), - ), -) - -it.effect("accepts exactly one concurrent terminal operation", () => - Effect.scoped( - Effect.gen(function* () { - const controller = yield* ToolController.make(["shell"]) - const config: OpenCodeConfig = {} - controller.configure(config) - const injected = ( - config.plugins as Array<{ - options: { endpoint: string; token: string } - }> - )[0]! - const shells = yield* controller.controls.control("shell") - const response = yield* Effect.promise(async () => { - const request = fetch(`${injected.options.endpoint}/execute/shell`, { - method: "POST", - headers: { - authorization: `Bearer ${injected.options.token}`, - "content-type": "application/json", - }, - body: JSON.stringify({ input: { command: "race" }, context: { callID: "call_race" } }), - }).then((response) => response.text()) - return { request } - }) - const call = yield* shells.take("call_race") - const start = yield* Deferred.make() - const attempts = yield* Effect.all( - [ - Deferred.await(start).pipe(Effect.andThen(call.succeed({ output: "won\n" })), Effect.exit), - Deferred.await(start).pipe(Effect.andThen(call.fail("lost")), Effect.exit), - ], - { concurrency: "unbounded" }, - ).pipe(Effect.forkChild) - yield* Deferred.succeed(start, undefined) - const exits = yield* Fiber.join(attempts) - expect(exits.filter(Exit.isSuccess)).toHaveLength(1) - expect(exits.filter(Exit.isFailure)).toHaveLength(1) - const events = (yield* Effect.promise(() => response.request)) - .trim() - .split("\n") - .map((line) => JSON.parse(line)) - expect(events).toHaveLength(1) - expect(["success", "failure"]).toContain(events[0]?.type) - }), - ), -) - -it.effect("releases an interrupted waiter and reports transport interruption", () => - Effect.scoped( - Effect.gen(function* () { - const controller = yield* ToolController.make(["shell"]) - const config: OpenCodeConfig = {} - controller.configure(config) - const injected = ( - config.plugins as Array<{ - options: { endpoint: string; token: string } - }> - )[0]! - const shells = yield* controller.controls.control("shell") - const abandoned = yield* shells.take("call_wait").pipe(Effect.forkScoped) - yield* Fiber.interrupt(abandoned) - - const request = new AbortController() - const response = fetch(`${injected.options.endpoint}/execute/shell`, { - method: "POST", - signal: request.signal, - headers: { - authorization: `Bearer ${injected.options.token}`, - "content-type": "application/json", - }, - body: JSON.stringify({ - input: { command: "wait" }, - context: { callID: "call_wait" }, - }), - }).catch(() => undefined) - const call = yield* shells.take("call_wait") - request.abort() - yield* call.awaitInterrupted() - yield* Effect.promise(() => response) - - expect(yield* call.succeed({ output: "late\n" }).pipe(Effect.flip)).toMatchObject({ - _tag: "OpenCodeDrive.ToolControlError", - message: "shell tool call call_wait is interrupted", - }) - }), - ), -) - -it.effect("rejects runtime control for tools not declared by name", () => - Effect.scoped( - Effect.gen(function* () { - const controller = yield* ToolController.make((tools) => { - tools.handle("shell", () => Effect.succeed({ output: "legacy handler\n" })) - }) - expect(yield* controller.controls.control("shell").pipe(Effect.flip)).toMatchObject({ - _tag: "OpenCodeDrive.ToolControlError", - message: "tool is not configured for runtime control: shell", - }) - }), - ), -) - -it.effect("closes blocked runtime controls with the controller scope", () => - Effect.gen(function* () { - const scope = yield* Scope.make() - const controller = yield* ToolController.make(["shell"]).pipe(Scope.provide(scope)) - const shells = yield* controller.controls.control("shell") - const waiting = yield* shells.take("call_never").pipe(Effect.forkChild) - - yield* Scope.close(scope, Exit.void) - - expect(yield* Fiber.join(waiting).pipe(Effect.flip)).toMatchObject({ - _tag: "OpenCodeDrive.ToolControlError", - operation: "take", - reason: "controller-closed", - name: "shell", - }) - expect(yield* controller.controls.control("shell").pipe(Effect.flip)).toMatchObject({ - _tag: "OpenCodeDrive.ToolControlError", - operation: "control", - reason: "controller-closed", - name: "shell", - }) - }), -) - -it.effect("interrupts claimed calls when the controller scope closes", () => - Effect.gen(function* () { - const scope = yield* Scope.make() - const controller = yield* ToolController.make(["shell"]).pipe(Scope.provide(scope)) - const config: OpenCodeConfig = {} - controller.configure(config) - const injected = ( - config.plugins as Array<{ - options: { endpoint: string; token: string } - }> - )[0]! - const shells = yield* controller.controls.control("shell") - const response = fetch(`${injected.options.endpoint}/execute/shell`, { - method: "POST", - headers: { - authorization: `Bearer ${injected.options.token}`, - "content-type": "application/json", - }, - body: JSON.stringify({ - input: { command: "wait" }, - context: { callID: "call_shutdown" }, - }), - }).catch(() => undefined) - const call = yield* shells.take("call_shutdown") - const interrupted = yield* call.awaitInterrupted().pipe(Effect.forkChild) - - yield* Scope.close(scope, Exit.void) - yield* Fiber.join(interrupted) - yield* Effect.promise(() => response) - - expect(yield* call.succeed({ output: "late\n" }).pipe(Effect.flip)).toMatchObject({ - _tag: "OpenCodeDrive.ToolControlError", - operation: "succeed", - reason: "controller-closed", - name: "shell", - callID: "call_shutdown", - }) - }), -) - -it.effect("routes typed webfetch, websearch, and write handlers independently", () => - Effect.scoped( - Effect.gen(function* () { - const controller = yield* ToolController.make((tools) => { - tools.handle("webfetch", ({ input, index }) => - Effect.succeed({ output: `${index}:${input.format}:${input.url}` }), - ) - tools.handle("websearch", ({ input, index }) => - Effect.succeed({ output: `${index}:${input.query}`, provider: "exa" }), - ) - tools.handle("write", ({ input, index }) => - Effect.succeed({ output: `${index}:${input.path}:${input.content}` }), - ) - }) - const config: OpenCodeConfig = {} - controller.configure(config) - const injected = ( - config.plugins as Array<{ - options: { endpoint: string; token: string; tools: string[] } - }> - )[0]! - expect(injected.options.tools).toEqual(["webfetch", "websearch", "write"]) - - const invoke = (name: string, input: unknown) => - Effect.promise(async () => { - const response = await fetch(`${injected.options.endpoint}/execute/${name}`, { - method: "POST", - headers: { - authorization: `Bearer ${injected.options.token}`, - "content-type": "application/json", - }, - body: JSON.stringify({ - input, - context: { callID: `call_${name}` }, - }), - }) - return (await response.text()) - .trim() - .split("\n") - .map((line) => JSON.parse(line)) - }) - - expect(yield* invoke("webfetch", { url: "https://example.com" })).toEqual([ - { - type: "success", - result: { output: "0:markdown:https://example.com" }, - }, - ]) - expect(yield* invoke("websearch", { query: "effect typescript" })).toEqual([ - { - type: "success", - result: { output: "0:effect typescript", provider: "exa" }, - }, - ]) - expect(yield* invoke("write", { path: "src/a.ts", content: "export const a = 1\n" })).toEqual([ - { - type: "success", - result: { output: "0:src/a.ts:export const a = 1\n" }, - }, - ]) - }), - ), -) - -it.effect("settles background shells immediately and retains their completion", () => - Effect.scoped( - Effect.gen(function* () { - const release = Promise.withResolvers() - let interrupted = false - const controller = yield* ToolController.make((tools) => { - tools.handle("shell", ({ input, progress }) => - Effect.gen(function* () { - yield* progress("still running\n") - yield* Effect.promise(() => release.promise) - return { output: `${input.command} complete\n`, exit: 0 } - }).pipe(Effect.onInterrupt(() => Effect.sync(() => (interrupted = true)))), - ) - }) - const config: OpenCodeConfig = {} - controller.configure(config) - const injected = ( - config.plugins as Array<{ - options: { endpoint: string; token: string } - }> - )[0]! - const headers = { - authorization: `Bearer ${injected.options.token}`, - "content-type": "application/json", - } - const started = yield* Effect.promise(async () => { - const response = await fetch(`${injected.options.endpoint}/execute/shell`, { - method: "POST", - headers, - body: JSON.stringify({ - input: { command: "compile", background: true }, - context: { callID: "call_background" }, - }), - }) - return (await response.text()) - .trim() - .split("\n") - .map((line) => JSON.parse(line)) - }) - expect(started).toEqual([ - { - type: "success", - result: { - output: "The command was moved to the background.", - shellID: "call_background", - status: "running", - }, - }, - ]) - expect(interrupted).toBe(false) - - const completion = fetch(`${injected.options.endpoint}/background/call_background`, { headers }).then( - (response) => response.json(), - ) - release.resolve() - expect(yield* Effect.promise(() => completion)).toEqual({ - shellID: "call_background", - command: "compile", - state: "completed", - output: "compile complete\n", - }) - }), - ), -) - -it.effect("controls a background shell after its launch response", () => - Effect.scoped( - Effect.gen(function* () { - const controller = yield* ToolController.make(["shell"]) - const config: OpenCodeConfig = {} - controller.configure(config) - const injected = ( - config.plugins as Array<{ - options: { endpoint: string; token: string } - }> - )[0]! - const headers = { - authorization: `Bearer ${injected.options.token}`, - "content-type": "application/json", - } - const shells = yield* controller.controls.control("shell") - const started = yield* Effect.promise(async () => { - const response = await fetch(`${injected.options.endpoint}/execute/shell`, { - method: "POST", - headers, - body: JSON.stringify({ - input: { command: "compile", background: true }, - context: { callID: "call_controlled_background" }, - }), - }) - return (await response.text()) - .trim() - .split("\n") - .map((line) => JSON.parse(line)) - }) - expect(started).toEqual([ - { - type: "success", - result: { - output: "The command was moved to the background.", - shellID: "call_controlled_background", - status: "running", - }, - }, - ]) - - const shell = yield* shells.take("call_controlled_background") - yield* shell.progress("compiling\n") - const completion = fetch(`${injected.options.endpoint}/background/call_controlled_background`, { headers }).then( - (response) => response.json(), - ) - yield* shell.succeed({ output: "compile complete\n", exit: 0 }) - expect(yield* Effect.promise(() => completion)).toEqual({ - shellID: "call_controlled_background", - command: "compile", - state: "completed", - output: "compile complete\n", - }) - }), - ), -) - -it.effect("reports background failures with retained progress output", () => - Effect.scoped( - Effect.gen(function* () { - const controller = yield* ToolController.make((tools) => { - tools.handle("shell", ({ progress }) => - Effect.gen(function* () { - yield* progress("partial output\n") - return yield* new Failure({ message: "controlled background failure" }) - }), - ) - }) - const config: OpenCodeConfig = {} - controller.configure(config) - const injected = ( - config.plugins as Array<{ - options: { endpoint: string; token: string } - }> - )[0]! - const headers = { - authorization: `Bearer ${injected.options.token}`, - "content-type": "application/json", - } - yield* Effect.promise(() => - fetch(`${injected.options.endpoint}/execute/shell`, { - method: "POST", - headers, - body: JSON.stringify({ - input: { command: "fail", background: true }, - context: { callID: "call_failure" }, - }), - }).then((response) => response.text()), - ) - const completion = yield* Effect.promise(() => - fetch(`${injected.options.endpoint}/background/call_failure`, { headers }).then((response) => response.json()), - ) - expect(completion).toEqual({ - shellID: "call_failure", - command: "fail", - state: "error", - output: "partial output\ncontrolled background failure", - }) - }), - ), -) - -it.effect("bounds retained background output", () => - Effect.scoped( - Effect.gen(function* () { - const controller = yield* ToolController.make((tools) => { - tools.handle("shell", ({ progress }) => - Effect.gen(function* () { - yield* progress("x".repeat(1024 * 1024)) - return { output: "unreachable" } - }), - ) - }) - const config: OpenCodeConfig = {} - controller.configure(config) - const injected = ( - config.plugins as Array<{ - options: { endpoint: string; token: string } - }> - )[0]! - const headers = { - authorization: `Bearer ${injected.options.token}`, - "content-type": "application/json", - } - yield* Effect.promise(() => - fetch(`${injected.options.endpoint}/execute/shell`, { - method: "POST", - headers, - body: JSON.stringify({ - input: { command: "verbose", background: true }, - context: { callID: "call_verbose" }, - }), - }).then((response) => response.text()), - ) - const completion = yield* Effect.promise(() => - fetch(`${injected.options.endpoint}/background/call_verbose`, { headers }).then((response) => response.json()), - ) - expect(completion).toEqual({ - shellID: "call_verbose", - command: "verbose", - state: "error", - output: "Drive tool event exceeds 1048576 bytes", - }) - }), - ), -) - -it.effect("notifies OpenCode when a registered background shell completes", () => - Effect.scoped( - Effect.gen(function* () { - const release = Promise.withResolvers() - const notified = Promise.withResolvers() - const controller = yield* ToolController.make((tools) => { - tools.handle("shell", () => - Effect.gen(function* () { - yield* Effect.promise(() => release.promise) - return { output: "plugin completion\n", exit: 0 } - }), - ) - }) - const config: OpenCodeConfig = {} - controller.configure(config) - const options = (config.plugins as Array<{ options: unknown }>)[0]!.options - let shell: RegisteredTool | undefined - yield* plugin.effect({ - options, - tool: { - transform: (register: (tools: { add: (tool: RegisteredTool) => void }) => void) => - Effect.sync(() => - register({ - add: (tool) => { - if (tool.name === "shell") shell = tool - }, - }), - ), - }, - session: { - synthetic: (input: unknown) => Effect.sync(() => notified.resolve(input)), - }, - }) - if (shell === undefined) return yield* Effect.die(new Error("shell tool was not registered")) - - const started = yield* shell.execute( - { command: "plugin", background: true }, - { sessionID: "ses_plugin", id: "call_plugin" }, - ) - expect(started).toEqual({ - output: { - output: "The command was moved to the background.", - shellID: "call_plugin", - status: "running", - }, - content: [ - { type: "text", text: "The command was moved to the background." }, - { - type: "text", - text: "You will be notified automatically when the command finishes. DO NOT sleep, poll, or proactively check on its progress.", - }, - ], - }) - - release.resolve() - expect(yield* Effect.promise(() => notified.promise)).toEqual({ - id: "msg_call_plugin_completion", - sessionID: "ses_plugin", - text: '\nplugin completion\n\n', - description: "plugin", - metadata: { source: "shell", state: "completed" }, - }) - }), - ), -) - -it.effect("cancels retained background shells when the controller stops", () => - Effect.gen(function* () { - const started = Promise.withResolvers() - const interrupted = Promise.withResolvers() - const scope = yield* Scope.make() - const controller = yield* ToolController.make((tools) => { - tools.handle("shell", () => - Effect.sync(() => started.resolve()).pipe( - Effect.andThen(Effect.never), - Effect.onInterrupt(() => Effect.sync(() => interrupted.resolve())), - ), - ) - }).pipe(Scope.provide(scope)) - const config: OpenCodeConfig = {} - controller.configure(config) - const injected = ( - config.plugins as Array<{ - options: { endpoint: string; token: string } - }> - )[0]! - yield* Effect.promise(() => - fetch(`${injected.options.endpoint}/execute/shell`, { - method: "POST", - headers: { - authorization: `Bearer ${injected.options.token}`, - "content-type": "application/json", - }, - body: JSON.stringify({ - input: { command: "wait", background: true }, - context: { callID: "call_shutdown" }, - }), - }).then((response) => response.text()), - ) - yield* Effect.promise(() => started.promise) - yield* Scope.close(scope, Exit.void) - yield* Effect.promise(() => interrupted.promise) - }), -) - -it.effect("waits for foreground handler finalizers when the controller stops", () => - Effect.gen(function* () { - const started = Promise.withResolvers() - const finalizing = Promise.withResolvers() - const release = Promise.withResolvers() - let finalized = false - const scope = yield* Scope.make() - const controller = yield* ToolController.make((tools) => { - tools.handle("shell", () => - Effect.sync(() => started.resolve()).pipe( - Effect.andThen(Effect.never), - Effect.onInterrupt(() => - Effect.sync(() => finalizing.resolve()).pipe( - Effect.andThen(Effect.promise(() => release.promise)), - Effect.andThen( - Effect.sync(() => { - finalized = true - }), - ), - ), - ), - ), - ) - }).pipe(Scope.provide(scope)) - const config: OpenCodeConfig = {} - controller.configure(config) - const injected = ( - config.plugins as Array<{ - options: { endpoint: string; token: string } - }> - )[0]! - const response = fetch(`${injected.options.endpoint}/execute/shell`, { - method: "POST", - headers: { - authorization: `Bearer ${injected.options.token}`, - "content-type": "application/json", - }, - body: JSON.stringify({ - input: { command: "wait" }, - context: { callID: "call_foreground_shutdown" }, - }), - }) - .then((response) => response.text()) - .catch(() => undefined) - yield* Effect.promise(() => started.promise) - let closed = false - const close = Effect.runPromise(Scope.close(scope, Exit.void)).then(() => { - closed = true - }) - yield* Effect.promise(() => finalizing.promise) - expect(closed).toBe(false) - expect(finalized).toBe(false) - release.resolve() - yield* Effect.promise(() => close) - yield* Effect.promise(() => response) - expect(closed).toBe(true) - expect(finalized).toBe(true) - }), -) - -it.effect("interrupts a handler when its transport disconnects", () => - Effect.scoped( - Effect.gen(function* () { - const started = Promise.withResolvers() - const interrupted = Promise.withResolvers() - const controller = yield* ToolController.make((tools) => { - tools.handle("shell", () => - Effect.sync(() => started.resolve()).pipe( - Effect.andThen(Effect.never), - Effect.onInterrupt(() => Effect.sync(() => interrupted.resolve())), - ), - ) - }) - const config: OpenCodeConfig = {} - controller.configure(config) - const injected = ( - config.plugins as Array<{ - options: { endpoint: string; token: string } - }> - )[0]! - const request = new AbortController() - const response = fetch(`${injected.options.endpoint}/execute/shell`, { - method: "POST", - signal: request.signal, - headers: { - authorization: `Bearer ${injected.options.token}`, - "content-type": "application/json", - }, - body: JSON.stringify({ - input: { command: "wait" }, - context: { callID: "call_disconnect" }, - }), - }).catch(() => undefined) - yield* Effect.promise(() => started.promise) - request.abort() - yield* Effect.promise(() => interrupted.promise) - yield* Effect.promise(() => response) - }), - ), -) - -it.effect("interrupts a handler with its plugin execution", () => - Effect.scoped( - Effect.gen(function* () { - const started = Promise.withResolvers() - const interrupted = Promise.withResolvers() - const controller = yield* ToolController.make((tools) => { - tools.handle("shell", () => - Effect.sync(() => started.resolve()).pipe( - Effect.andThen(Effect.never), - Effect.onInterrupt(() => Effect.sync(() => interrupted.resolve())), - ), - ) - }) - const config: OpenCodeConfig = {} - controller.configure(config) - const options = (config.plugins as Array<{ options: unknown }>)[0]!.options - let shell: RegisteredTool | undefined - yield* plugin.effect({ - options, - tool: { - transform: (register: (tools: { add: (tool: RegisteredTool) => void }) => void) => - Effect.sync(() => - register({ - add: (tool) => { - if (tool.name === "shell") shell = tool - }, - }), - ), - }, - session: { - synthetic: () => Effect.void, - }, - }) - if (shell === undefined) return yield* Effect.die(new Error("shell tool was not registered")) - - const execution = yield* shell - .execute({ command: "wait" }, { sessionID: "ses_interrupt", id: "call_interrupt" }) - .pipe(Effect.forkScoped) - yield* Effect.promise(() => started.promise) - yield* Fiber.interrupt(execution) - yield* Effect.promise(() => interrupted.promise) - }), - ), -) diff --git a/packages/drive/test/tool/producer.test.ts b/packages/drive/test/tool/producer.test.ts deleted file mode 100644 index e62e41b72e4..00000000000 --- a/packages/drive/test/tool/producer.test.ts +++ /dev/null @@ -1,1393 +0,0 @@ -import { expect, it } from "@effect/vitest" -import { Deferred, Effect, Exit, Fiber, Scope } from "effect" -import * as SimulationConnector from "../../src/simulation/connector.js" -import * as ToolProducer from "../../src/tool/producer.js" -import type { Progress } from "../../src/tool/types.js" -import { sendError, sendResult, startTransportPeer } from "../simulation/transport-peer.js" - -const registration = { - name: "lookup", - description: "Look up a value", - inputSchema: { - type: "object", - properties: { query: { type: "string" } }, - required: ["query"], - additionalProperties: false, - }, - outputSchema: { - type: "object", - properties: { answer: { type: "number" } }, - required: ["answer"], - }, - options: { codemode: false }, -} as const - -const invocation = { - id: "tool_1", - name: "lookup", - input: { query: "meaning" }, - context: { - sessionID: "ses_tools", - agent: "build", - messageID: "msg_tools", - id: "call_lookup", - }, -} as const - -function notify(socket: Bun.ServerWebSocket, method: "tool.invocation" | "tool.cancel", params: unknown) { - socket.send(JSON.stringify({ jsonrpc: "2.0", method, params })) -} - -it.live("attaches, sequences progress, and settles one dynamic invocation", () => - Effect.scoped( - Effect.gen(function* () { - const peer = startTransportPeer(({ request, socket }) => { - sendResult(socket, request, request.method === "tool.attach" ? { attached: true } : { ok: true }) - }) - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const backend = yield* SimulationConnector.backend(peer.url, { - attach: false, - }) - const controller = yield* ToolProducer.make(new Set()) - yield* controller.connect(backend) - - yield* controller.controls.attach({ tools: [registration] }) - const socket = peer.received[0].socket - notify(socket, "tool.invocation", invocation) - const call = yield* controller.controls.take("call_lookup") - - expect(call).toMatchObject({ - id: invocation.id, - name: invocation.name, - input: invocation.input, - context: { - sessionID: invocation.context.sessionID, - agent: invocation.context.agent, - messageID: invocation.context.messageID, - callID: invocation.context.id, - }, - }) - yield* call.progress({ - structured: { phase: "searching" }, - content: [{ type: "text", text: "Searching" }], - }) - yield* call.progress({ structured: { phase: "done" } }) - yield* call.finish({ - structured: { answer: 42 }, - content: [{ type: "text", text: "42" }], - }) - - expect(peer.received.map(({ request }) => request)).toEqual([ - { - jsonrpc: "2.0", - id: 1, - method: "tool.attach", - params: { tools: [registration] }, - }, - { - jsonrpc: "2.0", - id: 2, - method: "tool.update", - params: { - id: "tool_1", - sequence: 0, - update: { - structured: { phase: "searching" }, - content: [{ type: "text", text: "Searching" }], - }, - }, - }, - { - jsonrpc: "2.0", - id: 3, - method: "tool.update", - params: { - id: "tool_1", - sequence: 1, - update: { structured: { phase: "done" } }, - }, - }, - { - jsonrpc: "2.0", - id: 4, - method: "tool.finish", - params: { - id: "tool_1", - output: { - structured: { answer: 42 }, - content: [{ type: "text", text: "42" }], - }, - }, - }, - ]) - expect(yield* call.fail("late").pipe(Effect.flip)).toMatchObject({ - _tag: "OpenCodeDrive.ToolLifecycleError", - operation: "fail", - reason: "already-settled", - callID: "call_lookup", - }) - yield* controller.settle - expect(yield* controller.controls.attach({ tools: [registration] }).pipe(Effect.flip)).toMatchObject({ - operation: "attach", - reason: "controller-closed", - }) - }), - ), -) - -it.live("fails settlement after a completed invocation ID is reused", () => - Effect.scoped( - Effect.gen(function* () { - const peer = startTransportPeer(({ request, socket }) => - sendResult(socket, request, request.method === "tool.attach" ? { attached: true } : { ok: true }), - ) - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const backend = yield* SimulationConnector.backend(peer.url, { - attach: false, - }) - const controller = yield* ToolProducer.make(new Set()) - yield* controller.connect(backend) - yield* controller.controls.attach({ tools: [registration] }) - const socket = peer.received[0].socket - notify(socket, "tool.invocation", invocation) - const call = yield* controller.controls.take("call_lookup") - yield* call.finish({ structured: { answer: 42 }, content: [] }) - notify(socket, "tool.invocation", { - ...invocation, - input: { query: "different" }, - }) - const failure = yield* controller.failure.pipe(Effect.flip) - - expect(yield* controller.settle.pipe(Effect.flip)).toEqual(failure) - }), - ), -) - -it.live("observes cancellation and rejects terminal work after it wins", () => - Effect.scoped( - Effect.gen(function* () { - const peer = startTransportPeer(({ request, socket }) => - sendResult(socket, request, request.method === "tool.attach" ? { attached: true } : { ok: true }), - ) - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const backend = yield* SimulationConnector.backend(peer.url, { - attach: false, - }) - const controller = yield* ToolProducer.make(new Set()) - yield* controller.connect(backend) - yield* controller.controls.attach({ tools: [registration] }) - const socket = peer.received[0].socket - notify(socket, "tool.invocation", invocation) - notify(socket, "tool.cancel", { id: "tool_1", reason: "interrupted" }) - yield* Effect.sleep(10) - const call = yield* controller.controls.take("call_lookup") - const cancelled = yield* call.awaitCancelled().pipe(Effect.forkScoped) - - expect(yield* Fiber.join(cancelled)).toEqual({ - id: "tool_1", - reason: "interrupted", - }) - expect(yield* call.finish({ structured: 42, content: [] }).pipe(Effect.flip)).toMatchObject({ - operation: "finish", - reason: "cancelled", - callID: "call_lookup", - }) - yield* controller.settle - }), - ), -) - -it.live("bounds retained unclaimed cancellations", () => - Effect.scoped( - Effect.gen(function* () { - const peer = startTransportPeer(({ request, socket }) => sendResult(socket, request, { attached: true })) - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const backend = yield* SimulationConnector.backend(peer.url, { - attach: false, - }) - const controller = yield* ToolProducer.make(new Set()) - yield* controller.connect(backend) - yield* controller.controls.attach({ tools: [registration] }) - const latest = yield* controller.controls.take("call_257").pipe(Effect.forkScoped) - const socket = peer.received[0].socket - - for (let index = 0; index < 258; index++) { - notify(socket, "tool.invocation", { - ...invocation, - id: `tool_${index}`, - context: { ...invocation.context, id: `call_${index}` }, - }) - notify(socket, "tool.cancel", { - id: `tool_${index}`, - reason: "interrupted", - }) - } - - const latestCall = yield* Fiber.join(latest) - yield* latestCall.awaitCancelled() - const retained = yield* controller.controls.take("call_256") - expect(yield* retained.awaitCancelled()).toMatchObject({ id: "tool_256" }) - const evicted = yield* controller.controls.take("call_0").pipe(Effect.forkScoped) - yield* Effect.yieldNow - expect(evicted.pollUnsafe()).toBeUndefined() - yield* Fiber.interrupt(evicted) - yield* controller.settle - }), - ), -) - -it.live("settles concurrent invocations in controlled reverse order", () => - Effect.scoped( - Effect.gen(function* () { - const peer = startTransportPeer(({ request, socket }) => - sendResult(socket, request, request.method === "tool.attach" ? { attached: true } : { ok: true }), - ) - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const backend = yield* SimulationConnector.backend(peer.url, { - attach: false, - }) - const controller = yield* ToolProducer.make(new Set()) - yield* controller.connect(backend) - yield* controller.controls.attach({ tools: [registration] }) - const socket = peer.received[0].socket - notify(socket, "tool.invocation", invocation) - notify(socket, "tool.invocation", { - ...invocation, - id: "tool_2", - input: { query: "second" }, - context: { ...invocation.context, id: "call_second" }, - }) - - const second = yield* controller.controls.take("call_second") - const first = yield* controller.controls.take("call_lookup") - const start = yield* Deferred.make() - const attempts = yield* Effect.all( - [ - Deferred.await(start).pipe(Effect.andThen(second.finish({ structured: 2, content: [] })), Effect.exit), - Deferred.await(start).pipe(Effect.andThen(second.fail("second failed")), Effect.exit), - ], - { concurrency: "unbounded" }, - ).pipe(Effect.forkScoped) - yield* Deferred.succeed(start, undefined) - const exits = yield* Fiber.join(attempts) - expect(exits.filter(Exit.isSuccess)).toHaveLength(1) - expect(exits.filter(Exit.isFailure)).toHaveLength(1) - yield* first.fail("first failed") - - const terminals = peer.received.filter( - ({ request }) => request.method === "tool.finish" || request.method === "tool.fail", - ) - expect(terminals).toHaveLength(2) - expect(terminals[0]?.request.params).toMatchObject({ id: "tool_2" }) - expect(terminals[1]?.request).toMatchObject({ - method: "tool.fail", - params: { id: "tool_1", message: "first failed" }, - }) - yield* controller.settle - }), - ), -) - -it.live("reattaches the desired set and deduplicates replay after reconnect", () => - Effect.scoped( - Effect.gen(function* () { - let attaches = 0 - const peer = startTransportPeer(({ request, socket }) => { - if (request.method === "tool.attach") { - attaches++ - if (attaches === 2) notify(socket, "tool.invocation", invocation) - sendResult(socket, request, { attached: true }) - return - } - sendResult(socket, request, { ok: true }) - }) - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const controller = yield* ToolProducer.make(new Set()) - const firstScope = yield* Scope.make() - const first = yield* SimulationConnector.backend(peer.url, { - attach: false, - }).pipe(Scope.provide(firstScope)) - const firstAttachment = yield* controller.connect(first) - yield* controller.controls.attach({ tools: [registration] }) - notify(peer.received[0].socket, "tool.invocation", invocation) - const call = yield* controller.controls.take("call_lookup") - - yield* firstAttachment.detach() - yield* Scope.close(firstScope, Exit.void) - const secondScope = yield* Scope.make() - const second = yield* SimulationConnector.backend(peer.url, { - attach: false, - }).pipe(Scope.provide(secondScope)) - const secondAttachment = yield* controller.connect(second) - - expect(yield* controller.controls.take("call_lookup").pipe(Effect.flip)).toMatchObject({ - reason: "already-claimed", - }) - yield* call.finish({ - structured: { answer: 42 }, - content: [{ type: "text", text: "42" }], - }) - expect(attaches).toBe(2) - expect(peer.received.filter(({ request }) => request.method === "tool.finish")).toHaveLength(1) - yield* controller.settle - yield* secondAttachment.detach() - yield* Scope.close(secondScope, Exit.void) - yield* controller.endGeneration - yield* controller.shutdown - }), - ), -) - -it.live("replays a replacement intent started while disconnected", () => - Effect.scoped( - Effect.gen(function* () { - const peer = startTransportPeer(({ request, socket }) => sendResult(socket, request, { attached: true })) - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const controller = yield* ToolProducer.make(new Set()) - const firstScope = yield* Scope.make() - const first = yield* SimulationConnector.backend(peer.url, { - attach: false, - }).pipe(Scope.provide(firstScope)) - const firstAttachment = yield* controller.connect(first) - yield* controller.controls.attach({ tools: [registration] }) - yield* firstAttachment.detach() - yield* Scope.close(firstScope, Exit.void) - - const replacement = { - ...registration, - name: "search", - description: "Search for a value", - } - const replacing = yield* controller.controls.attach({ tools: [replacement] }).pipe(Effect.forkScoped) - yield* Effect.yieldNow - const secondScope = yield* Scope.make() - const second = yield* SimulationConnector.backend(peer.url, { - attach: false, - }).pipe(Scope.provide(secondScope)) - const secondAttachment = yield* controller.connect(second) - yield* Fiber.join(replacing) - - expect( - peer.received.filter(({ request }) => request.method === "tool.attach").map(({ request }) => request.params), - ).toEqual([{ tools: [registration] }, { tools: [replacement] }, { tools: [replacement] }]) - yield* secondAttachment.detach() - yield* Scope.close(secondScope, Exit.void) - }), - ), -) - -it.live("preserves a replacement intent when its acknowledgement is lost", () => - Effect.scoped( - Effect.gen(function* () { - let attaches = 0 - const replacement = { - ...registration, - name: "search", - description: "Search for a value", - } - const replacementInvocation = { - ...invocation, - id: "tool_2", - name: "search", - context: { ...invocation.context, id: "call_search" }, - } - const firstReplacement = yield* Deferred.make() - const peer = startTransportPeer(({ request, socket }) => { - if (request.method === "tool.attach") { - attaches++ - if (attaches === 2) { - notify(socket, "tool.invocation", replacementInvocation) - Deferred.doneUnsafe(firstReplacement, Effect.void) - socket.close() - return - } - if (attaches === 3) notify(socket, "tool.invocation", replacementInvocation) - sendResult(socket, request, { attached: true }) - return - } - sendResult(socket, request, { ok: true }) - }) - yield* Effect.addFinalizer(() => - Effect.sync(() => { - void peer.stop() - }), - ) - const controller = yield* ToolProducer.make(new Set()) - const firstScope = yield* Scope.make() - const first = yield* SimulationConnector.backend(peer.url, { - attach: false, - }).pipe(Scope.provide(firstScope)) - const firstAttachment = yield* controller.connect(first) - yield* controller.controls.attach({ tools: [registration] }) - - const replacing = yield* controller.controls.attach({ tools: [replacement] }).pipe(Effect.forkScoped) - yield* Deferred.await(firstReplacement) - yield* first.closed - yield* firstAttachment.detach() - yield* Scope.close(firstScope, Exit.void) - const secondScope = yield* Scope.make() - const second = yield* SimulationConnector.backend(peer.url, { - attach: false, - }).pipe(Scope.provide(secondScope)) - const secondAttachment = yield* controller.connect(second) - yield* Fiber.join(replacing) - const call = yield* controller.controls.take("call_search") - yield* call.fail("finished") - - expect( - peer.received.filter(({ request }) => request.method === "tool.attach").map(({ request }) => request.params), - ).toEqual([ - { tools: [registration] }, - { tools: [replacement] }, - { tools: [replacement] }, - { tools: [replacement] }, - ]) - yield* secondAttachment.detach() - yield* Scope.close(secondScope, Exit.void) - yield* controller.endGeneration - yield* controller.shutdown - }), - ), -) - -it.live("restores the acknowledged set after a rejected replacement", () => - Effect.scoped( - Effect.gen(function* () { - let attaches = 0 - const replacement = { - ...registration, - name: "search", - description: "Search for a value", - } - const peer = startTransportPeer(({ request, socket }) => { - if (request.method === "tool.attach" && ++attaches === 2) { - sendError(socket, request, "replacement rejected") - return - } - sendResult(socket, request, { attached: true }) - }) - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const controller = yield* ToolProducer.make(new Set()) - const firstScope = yield* Scope.make() - const first = yield* SimulationConnector.backend(peer.url, { - attach: false, - }).pipe(Scope.provide(firstScope)) - const firstAttachment = yield* controller.connect(first) - yield* controller.controls.attach({ tools: [registration] }) - expect(yield* controller.controls.attach({ tools: [replacement] }).pipe(Effect.flip)).toMatchObject({ - operation: "attach", - reason: "rejected", - }) - yield* firstAttachment.detach() - yield* Scope.close(firstScope, Exit.void) - const secondScope = yield* Scope.make() - const second = yield* SimulationConnector.backend(peer.url, { - attach: false, - }).pipe(Scope.provide(secondScope)) - const secondAttachment = yield* controller.connect(second) - - expect( - peer.received.filter(({ request }) => request.method === "tool.attach").map(({ request }) => request.params), - ).toEqual([{ tools: [registration] }, { tools: [replacement] }, { tools: [registration] }]) - yield* secondAttachment.detach() - yield* Scope.close(secondScope, Exit.void) - }), - ), -) - -it.live("rejects a disconnected replacement without poisoning relaunch", () => - Effect.scoped( - Effect.gen(function* () { - let attaches = 0 - const replacement = { - ...registration, - name: "search", - description: "Search for a value", - } - const peer = startTransportPeer(({ request, socket }) => { - if (request.method === "tool.attach" && ++attaches === 2) { - sendError(socket, request, "replacement rejected") - return - } - sendResult(socket, request, { attached: true }) - }) - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const controller = yield* ToolProducer.make(new Set()) - const firstScope = yield* Scope.make() - const first = yield* SimulationConnector.backend(peer.url, { - attach: false, - }).pipe(Scope.provide(firstScope)) - const firstAttachment = yield* controller.connect(first) - yield* controller.controls.attach({ tools: [registration] }) - yield* firstAttachment.detach() - yield* Scope.close(firstScope, Exit.void) - - const replacing = yield* controller.controls.attach({ tools: [replacement] }).pipe(Effect.forkScoped) - yield* Effect.yieldNow - const rejectedScope = yield* Scope.make() - const rejectedBackend = yield* SimulationConnector.backend(peer.url, { - attach: false, - }).pipe(Scope.provide(rejectedScope)) - expect(yield* controller.connect(rejectedBackend).pipe(Effect.flip)).toMatchObject({ - operation: "attach", - reason: "rejected", - }) - expect(yield* Fiber.join(replacing).pipe(Effect.flip)).toMatchObject({ - operation: "attach", - reason: "rejected", - }) - yield* Scope.close(rejectedScope, Exit.void) - - const recoveredScope = yield* Scope.make() - const recovered = yield* SimulationConnector.backend(peer.url, { - attach: false, - }).pipe(Scope.provide(recoveredScope)) - const recoveredAttachment = yield* controller.connect(recovered) - expect( - peer.received.filter(({ request }) => request.method === "tool.attach").map(({ request }) => request.params), - ).toEqual([{ tools: [registration] }, { tools: [replacement] }, { tools: [registration] }]) - yield* recoveredAttachment.detach() - yield* Scope.close(recoveredScope, Exit.void) - }), - ), -) - -it.live("rejects malformed lifecycle acknowledgements without retrying", () => - Effect.scoped( - Effect.gen(function* () { - const peer = startTransportPeer(({ request, socket }) => sendResult(socket, request, { attached: "invalid" })) - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const backend = yield* SimulationConnector.backend(peer.url, { - attach: false, - }) - const controller = yield* ToolProducer.make(new Set()) - const attachment = yield* controller.connect(backend) - - expect(yield* controller.controls.attach({ tools: [registration] }).pipe(Effect.flip)).toMatchObject({ - operation: "attach", - reason: "rejected", - }) - expect(peer.received.filter(({ request }) => request.method === "tool.attach")).toHaveLength(1) - yield* attachment.detach() - const recovered = yield* SimulationConnector.backend(peer.url, { - attach: false, - }) - yield* controller.connect(recovered) - expect(peer.received.filter(({ request }) => request.method === "tool.attach")).toHaveLength(1) - }), - ), -) - -it.live("rejects a malformed disconnected replacement and restores the acknowledged set", () => - Effect.scoped( - Effect.gen(function* () { - let attaches = 0 - const replacement = { - ...registration, - name: "search", - description: "Search for a value", - } - const peer = startTransportPeer(({ request, socket }) => { - if (request.method === "tool.attach" && ++attaches === 2) { - sendResult(socket, request, { attached: "invalid" }) - return - } - sendResult(socket, request, { attached: true }) - }) - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const controller = yield* ToolProducer.make(new Set()) - const firstScope = yield* Scope.make() - const first = yield* SimulationConnector.backend(peer.url, { - attach: false, - }).pipe(Scope.provide(firstScope)) - const firstAttachment = yield* controller.connect(first) - yield* controller.controls.attach({ tools: [registration] }) - yield* firstAttachment.detach() - yield* Scope.close(firstScope, Exit.void) - - const replacing = yield* controller.controls.attach({ tools: [replacement] }).pipe(Effect.forkScoped) - const rejectedScope = yield* Scope.make() - const rejected = yield* SimulationConnector.backend(peer.url, { - attach: false, - }).pipe(Scope.provide(rejectedScope)) - expect(yield* controller.connect(rejected).pipe(Effect.flip)).toMatchObject({ - operation: "attach", - reason: "rejected", - }) - expect(yield* Fiber.join(replacing).pipe(Effect.flip)).toMatchObject({ - operation: "attach", - reason: "rejected", - }) - yield* Scope.close(rejectedScope, Exit.void) - - const recoveredScope = yield* Scope.make() - const recovered = yield* SimulationConnector.backend(peer.url, { - attach: false, - }).pipe(Scope.provide(recoveredScope)) - const recoveredAttachment = yield* controller.connect(recovered) - expect( - peer.received.filter(({ request }) => request.method === "tool.attach").map(({ request }) => request.params), - ).toEqual([{ tools: [registration] }, { tools: [replacement] }, { tools: [registration] }]) - yield* recoveredAttachment.detach() - yield* Scope.close(recoveredScope, Exit.void) - }), - ), -) - -it.live("rejects a disconnected replacement after an invalid protocol response", () => - Effect.scoped( - Effect.gen(function* () { - let attaches = 0 - const replacement = { - ...registration, - name: "search", - description: "Search for a value", - } - const peer = startTransportPeer(({ request, socket }) => { - if (request.method === "tool.attach" && ++attaches === 2) { - socket.send("not-json") - return - } - sendResult(socket, request, { attached: true }) - }) - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const controller = yield* ToolProducer.make(new Set()) - const firstScope = yield* Scope.make() - const first = yield* SimulationConnector.backend(peer.url, { - attach: false, - }).pipe(Scope.provide(firstScope)) - const firstAttachment = yield* controller.connect(first) - yield* controller.controls.attach({ tools: [registration] }) - yield* firstAttachment.detach() - yield* Scope.close(firstScope, Exit.void) - - const replacing = yield* controller.controls.attach({ tools: [replacement] }).pipe(Effect.forkScoped) - const rejectedScope = yield* Scope.make() - const rejected = yield* SimulationConnector.backend(peer.url, { - attach: false, - }).pipe(Scope.provide(rejectedScope)) - expect(yield* controller.connect(rejected).pipe(Effect.flip)).toMatchObject({ - operation: "attach", - reason: "rejected", - }) - expect(yield* Fiber.join(replacing).pipe(Effect.flip)).toMatchObject({ - operation: "attach", - reason: "rejected", - }) - yield* Scope.close(rejectedScope, Exit.void) - }), - ), -) - -it.live("drains queued invocations before reporting settlement", () => - Effect.scoped( - Effect.gen(function* () { - let attaches = 0 - const peer = startTransportPeer(({ request, socket }) => { - if (request.method === "tool.attach") { - attaches++ - if (attaches === 2) notify(socket, "tool.invocation", invocation) - sendResult(socket, request, { attached: true }) - return - } - sendResult(socket, request, { ok: true }) - }) - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const backend = yield* SimulationConnector.backend(peer.url, { - attach: false, - }) - const controller = yield* ToolProducer.make(new Set()) - yield* controller.connect(backend) - yield* controller.controls.attach({ tools: [registration] }) - - expect(yield* controller.settle.pipe(Effect.flip)).toMatchObject({ - operation: "take", - reason: "rejected", - message: expect.stringContaining("1 dynamic tool invocation"), - }) - const call = yield* controller.controls.take("call_lookup") - yield* call.fail("finished") - yield* controller.settle - expect( - peer.received.filter(({ request }) => request.method === "tool.attach").map(({ request }) => request.params), - ).toEqual([{ tools: [registration] }, { tools: [] }]) - }), - ), -) - -it.live("rolls interrupted replacement history back to the acknowledged set", () => - Effect.scoped( - Effect.gen(function* () { - let attaches = 0 - const interruptedStarted = yield* Deferred.make() - const interrupted = { - ...registration, - name: "search", - description: "Search for a value", - } - const rejected = { - ...registration, - name: "fetch", - description: "Fetch a value", - } - const peer = startTransportPeer(({ request, socket }) => { - if (request.method === "tool.attach") { - attaches++ - if (attaches === 2) { - Deferred.doneUnsafe(interruptedStarted, Effect.void) - return - } - if (attaches === 3) { - sendError(socket, request, "replacement rejected") - return - } - } - sendResult(socket, request, { attached: true }) - }) - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const controller = yield* ToolProducer.make(new Set()) - const firstScope = yield* Scope.make() - const first = yield* SimulationConnector.backend(peer.url, { - attach: false, - }).pipe(Scope.provide(firstScope)) - const firstAttachment = yield* controller.connect(first) - yield* controller.controls.attach({ tools: [registration] }) - - const replacing = yield* controller.controls.attach({ tools: [interrupted] }).pipe(Effect.forkScoped) - yield* Deferred.await(interruptedStarted) - yield* Fiber.interrupt(replacing) - expect(yield* controller.controls.attach({ tools: [rejected] }).pipe(Effect.flip)).toMatchObject({ - operation: "attach", - reason: "rejected", - }) - yield* firstAttachment.detach() - yield* Scope.close(firstScope, Exit.void) - - const recoveredScope = yield* Scope.make() - const recovered = yield* SimulationConnector.backend(peer.url, { - attach: false, - }).pipe(Scope.provide(recoveredScope)) - const recoveredAttachment = yield* controller.connect(recovered) - expect( - peer.received.filter(({ request }) => request.method === "tool.attach").map(({ request }) => request.params), - ).toEqual([{ tools: [registration] }, { tools: [interrupted] }, { tools: [rejected] }, { tools: [registration] }]) - yield* recoveredAttachment.detach() - yield* Scope.close(recoveredScope, Exit.void) - }), - ), -) - -it.live("fails settlement after the inbound event stream fails", () => - Effect.scoped( - Effect.gen(function* () { - const peer = startTransportPeer(({ request, socket }) => sendResult(socket, request, { attached: true })) - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const backend = yield* SimulationConnector.backend(peer.url, { - attach: false, - }) - const controller = yield* ToolProducer.make(new Set()) - yield* controller.connect(backend) - yield* controller.controls.attach({ tools: [registration] }) - notify(peer.received[0].socket, "tool.invocation", { - ...invocation, - id: 1, - }) - const streamFailure = yield* controller.failure.pipe(Effect.flip) - - expect(yield* controller.settle.pipe(Effect.flip)).toEqual(streamFailure) - expect(peer.received.filter(({ request }) => request.method === "tool.attach")).toHaveLength(1) - }), - ), -) - -it.live("settles without a backend after its generation ends", () => - Effect.scoped( - Effect.gen(function* () { - const peer = startTransportPeer(({ request, socket }) => sendResult(socket, request, { attached: true })) - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const backendScope = yield* Scope.make() - const backend = yield* SimulationConnector.backend(peer.url, { - attach: false, - }).pipe(Scope.provide(backendScope)) - const controller = yield* ToolProducer.make(new Set()) - const attachment = yield* controller.connect(backend) - yield* controller.controls.attach({ tools: [registration] }) - yield* attachment.detach() - yield* Scope.close(backendScope, Exit.void) - yield* controller.endGeneration - - yield* controller.settle - }), - ), -) - -it.live("settles when the generation ends during its clear request", () => - Effect.scoped( - Effect.gen(function* () { - let attaches = 0 - const clearStarted = yield* Deferred.make() - const peer = startTransportPeer(({ request, socket }) => { - if (request.method === "tool.attach" && ++attaches === 2) { - Deferred.doneUnsafe(clearStarted, Effect.void) - return - } - sendResult(socket, request, { attached: true }) - }) - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const backendScope = yield* Scope.make() - const backend = yield* SimulationConnector.backend(peer.url, { - attach: false, - }).pipe(Scope.provide(backendScope)) - const controller = yield* ToolProducer.make(new Set()) - const attachment = yield* controller.connect(backend) - yield* controller.controls.attach({ tools: [registration] }) - - const settling = yield* controller.settle.pipe(Effect.forkScoped) - yield* Deferred.await(clearStarted) - yield* attachment.detach() - yield* controller.endGeneration - yield* Scope.close(backendScope, Exit.void) - - yield* Fiber.join(settling) - }), - ), -) - -it.live("reconnects when the backend disconnects during settlement", () => - Effect.scoped( - Effect.gen(function* () { - let attaches = 0 - const clearInterrupted = yield* Deferred.make() - const peer = startTransportPeer(({ request, socket }) => { - if (request.method === "tool.attach" && ++attaches === 2) { - Deferred.doneUnsafe(clearInterrupted, Effect.void) - socket.close() - return - } - sendResult(socket, request, { attached: true }) - }) - yield* Effect.addFinalizer(() => - Effect.sync(() => { - void peer.stop() - }), - ) - const controller = yield* ToolProducer.make(new Set()) - const firstScope = yield* Scope.make() - const first = yield* SimulationConnector.backend(peer.url, { - attach: false, - }).pipe(Scope.provide(firstScope)) - const firstAttachment = yield* controller.connect(first) - yield* controller.controls.attach({ tools: [registration] }) - - const settling = yield* controller.settle.pipe(Effect.forkScoped) - yield* Deferred.await(clearInterrupted) - yield* first.closed - yield* firstAttachment.detach() - yield* Scope.close(firstScope, Exit.void) - const recoveredScope = yield* Scope.make() - const recovered = yield* SimulationConnector.backend(peer.url, { - attach: false, - }).pipe(Scope.provide(recoveredScope)) - const recoveredAttachment = yield* controller.connect(recovered) - - yield* Fiber.join(settling) - expect( - peer.received.filter(({ request }) => request.method === "tool.attach").map(({ request }) => request.params), - ).toEqual([{ tools: [registration] }, { tools: [] }, { tools: [] }, { tools: [] }]) - yield* recoveredAttachment.detach() - yield* Scope.close(recoveredScope, Exit.void) - }), - ), -) - -it.live("retries the final event barrier after a disconnect", () => - Effect.scoped( - Effect.gen(function* () { - let flushes = 0 - const finalBarrierStarted = yield* Deferred.make() - const peer = startTransportPeer(({ request, socket }) => sendResult(socket, request, { attached: true })) - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const controller = yield* ToolProducer.make(new Set()) - const firstScope = yield* Scope.make() - const first = yield* SimulationConnector.backend(peer.url, { - attach: false, - }).pipe(Scope.provide(firstScope)) - const blocked = { - ...first, - flushToolEvents: () => { - flushes++ - return flushes === 2 - ? Deferred.succeed(finalBarrierStarted, undefined).pipe(Effect.andThen(Effect.never)) - : first.flushToolEvents() - }, - } - const firstAttachment = yield* controller.connect(blocked) - yield* controller.controls.attach({ tools: [registration] }) - - const settling = yield* controller.settle.pipe(Effect.forkScoped) - yield* Deferred.await(finalBarrierStarted) - yield* firstAttachment.detach() - yield* Scope.close(firstScope, Exit.void) - yield* Effect.yieldNow - expect(settling.pollUnsafe()).toBeUndefined() - - const recoveredScope = yield* Scope.make() - const recovered = yield* SimulationConnector.backend(peer.url, { - attach: false, - }).pipe(Scope.provide(recoveredScope)) - const recoveredAttachment = yield* controller.connect(recovered) - yield* Fiber.join(settling) - expect( - peer.received.filter(({ request }) => request.method === "tool.attach").map(({ request }) => request.params), - ).toEqual([{ tools: [registration] }, { tools: [] }, { tools: [] }]) - yield* recoveredAttachment.detach() - yield* Scope.close(recoveredScope, Exit.void) - }), - ), -) - -it.live("rejects a backend connection after terminal settlement", () => - Effect.scoped( - Effect.gen(function* () { - const peer = startTransportPeer(({ request, socket }) => sendResult(socket, request, { attached: true })) - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const firstScope = yield* Scope.make() - const first = yield* SimulationConnector.backend(peer.url, { - attach: false, - }).pipe(Scope.provide(firstScope)) - const controller = yield* ToolProducer.make(new Set()) - const firstAttachment = yield* controller.connect(first) - yield* controller.controls.attach({ tools: [registration] }) - yield* firstAttachment.detach() - yield* Scope.close(firstScope, Exit.void) - yield* controller.endGeneration - yield* controller.settle - - const nextScope = yield* Scope.make() - const next = yield* SimulationConnector.backend(peer.url, { - attach: false, - }).pipe(Scope.provide(nextScope)) - expect(yield* controller.connect(next).pipe(Effect.flip)).toMatchObject({ - operation: "attach", - reason: "controller-closed", - }) - expect(peer.received.filter(({ request }) => request.method === "tool.attach")).toHaveLength(1) - yield* Scope.close(nextScope, Exit.void) - }), - ), -) - -it.effect("closes take waiters and backend creation after settlement", () => - Effect.scoped( - Effect.gen(function* () { - const controller = yield* ToolProducer.make(new Set()) - const waiting = yield* controller.controls.take().pipe(Effect.forkScoped) - yield* controller.settle - - expect(yield* Fiber.join(waiting).pipe(Effect.flip)).toMatchObject({ - operation: "take", - reason: "controller-closed", - }) - expect(yield* controller.controls.take().pipe(Effect.flip)).toMatchObject({ - operation: "take", - reason: "controller-closed", - }) - let evaluated = false - const backend = Effect.sync(() => { - evaluated = true - throw new Error("backend factory was evaluated") - }) - expect(yield* controller.connectFrom(backend).pipe(Effect.flip)).toMatchObject({ - operation: "attach", - reason: "controller-closed", - }) - expect(evaluated).toBe(false) - }), - ), -) - -it.live("settles after a backend connection that was already in progress", () => - Effect.scoped( - Effect.gen(function* () { - let attaches = 0 - const replayStarted = yield* Deferred.make() - const clearStarted = yield* Deferred.make() - const peer = startTransportPeer(({ request, socket }) => { - if (request.method === "tool.attach") { - attaches++ - if (attaches === 2) { - Deferred.doneUnsafe(replayStarted, Effect.void) - return - } - if (attaches === 3) Deferred.doneUnsafe(clearStarted, Effect.void) - } - sendResult(socket, request, { attached: true }) - }) - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const controller = yield* ToolProducer.make(new Set()) - const firstScope = yield* Scope.make() - const first = yield* SimulationConnector.backend(peer.url, { - attach: false, - }).pipe(Scope.provide(firstScope)) - const firstAttachment = yield* controller.connect(first) - yield* controller.controls.attach({ tools: [registration] }) - yield* firstAttachment.detach() - yield* controller.endGeneration - yield* Scope.close(firstScope, Exit.void) - - const nextScope = yield* Scope.make() - const next = yield* SimulationConnector.backend(peer.url, { - attach: false, - }).pipe(Scope.provide(nextScope)) - const connecting = yield* controller.connect(next).pipe(Effect.forkScoped) - yield* Deferred.await(replayStarted) - const settling = yield* controller.settle.pipe(Effect.forkScoped) - const replay = peer.received.filter(({ request }) => request.method === "tool.attach")[1] - if (replay === undefined) return yield* Effect.die(new Error("missing replay attachment request")) - sendResult(replay.socket, replay.request, { attached: true }) - yield* Deferred.await(clearStarted) - - const nextAttachment = yield* Fiber.join(connecting) - yield* Fiber.join(settling) - expect( - peer.received.filter(({ request }) => request.method === "tool.attach").map(({ request }) => request.params), - ).toEqual([{ tools: [registration] }, { tools: [registration] }, { tools: [] }]) - yield* nextAttachment.detach() - yield* Scope.close(nextScope, Exit.void) - }), - ), -) - -it.live("drains a reconnect that finishes during settlement commit", () => - Effect.scoped( - Effect.gen(function* () { - let attaches = 0 - let flushes = 0 - const firstDrained = yield* Deferred.make() - const releaseDrain = yield* Deferred.make() - const staleInvocation = { - ...invocation, - id: "tool_stale", - context: { ...invocation.context, id: "call_stale" }, - } - const peer = startTransportPeer(({ request, socket }) => { - if (request.method === "tool.attach") { - attaches++ - if (attaches === 3) notify(socket, "tool.invocation", staleInvocation) - } - sendResult(socket, request, request.method === "tool.attach" ? { attached: true } : { ok: true }) - }) - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const controller = yield* ToolProducer.make(new Set()) - const firstScope = yield* Scope.make() - const first = yield* SimulationConnector.backend(peer.url, { - attach: false, - }).pipe(Scope.provide(firstScope)) - const blocked = { - ...first, - flushToolEvents: () => { - flushes++ - return first - .flushToolEvents() - .pipe( - Effect.andThen( - flushes === 1 - ? Deferred.succeed(firstDrained, undefined).pipe(Effect.andThen(Deferred.await(releaseDrain))) - : Effect.void, - ), - ) - }, - } - const firstAttachment = yield* controller.connect(blocked) - yield* controller.controls.attach({ tools: [registration] }) - - const settling = yield* controller.settle.pipe(Effect.forkScoped) - yield* Deferred.await(firstDrained) - yield* firstAttachment.detach() - yield* Scope.close(firstScope, Exit.void) - const nextScope = yield* Scope.make() - const next = yield* SimulationConnector.backend(peer.url, { - attach: false, - }).pipe(Scope.provide(nextScope)) - const nextAttachment = yield* controller.connect(next) - yield* Deferred.succeed(releaseDrain, undefined) - - expect(yield* Fiber.join(settling).pipe(Effect.flip)).toMatchObject({ - operation: "take", - reason: "rejected", - message: expect.stringContaining("1 dynamic tool invocation"), - }) - const stale = yield* controller.controls.take("call_stale") - yield* stale.fail("finished") - yield* controller.settle - yield* nextAttachment.detach() - yield* Scope.close(nextScope, Exit.void) - }), - ), -) - -it.live("serializes settlement after interrupting an in-flight replacement", () => - Effect.scoped( - Effect.gen(function* () { - let attaches = 0 - const replacementStarted = yield* Deferred.make() - const clearStarted = yield* Deferred.make() - const replacement = { - ...registration, - name: "search", - description: "Search for a value", - } - const peer = startTransportPeer(({ request, socket }) => { - if (request.method === "tool.attach") { - attaches++ - if (attaches === 2) { - Deferred.doneUnsafe(replacementStarted, Effect.void) - return - } - if (attaches === 3) Deferred.doneUnsafe(clearStarted, Effect.void) - } - sendResult(socket, request, { attached: true }) - }) - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const backend = yield* SimulationConnector.backend(peer.url, { - attach: false, - }) - const controller = yield* ToolProducer.make(new Set()) - yield* controller.connect(backend) - yield* controller.controls.attach({ tools: [registration] }) - - const replacing = yield* controller.controls.attach({ tools: [replacement] }).pipe(Effect.forkScoped) - yield* Deferred.await(replacementStarted) - const settling = yield* controller.settle.pipe(Effect.forkScoped) - yield* Deferred.await(clearStarted) - - expect(yield* Fiber.join(replacing).pipe(Effect.flip)).toMatchObject({ - operation: "attach", - reason: "controller-closed", - }) - yield* Fiber.join(settling) - expect( - peer.received.filter(({ request }) => request.method === "tool.attach").map(({ request }) => request.params), - ).toEqual([{ tools: [registration] }, { tools: [replacement] }, { tools: [] }]) - }), - ), -) - -it.live("releases a disconnected replacement when its generation ends", () => - Effect.scoped( - Effect.gen(function* () { - let attaches = 0 - const replacementStarted = yield* Deferred.make() - const replacement = { - ...registration, - name: "search", - description: "Search for a value", - } - const peer = startTransportPeer(({ request, socket }) => { - if (request.method === "tool.attach" && ++attaches === 2) { - Deferred.doneUnsafe(replacementStarted, Effect.void) - socket.close() - return - } - sendResult(socket, request, { attached: true }) - }) - yield* Effect.addFinalizer(() => - Effect.sync(() => { - void peer.stop() - }), - ) - const backendScope = yield* Scope.make() - const backend = yield* SimulationConnector.backend(peer.url, { - attach: false, - }).pipe(Scope.provide(backendScope)) - const controller = yield* ToolProducer.make(new Set()) - const attachment = yield* controller.connect(backend) - yield* controller.controls.attach({ tools: [registration] }) - - const replacing = yield* controller.controls.attach({ tools: [replacement] }).pipe(Effect.forkScoped) - yield* Deferred.await(replacementStarted) - yield* backend.closed - yield* attachment.detach() - yield* Scope.close(backendScope, Exit.void) - yield* controller.endGeneration - yield* controller.settle - - expect(yield* Fiber.join(replacing).pipe(Effect.flip)).toMatchObject({ - operation: "attach", - reason: "controller-closed", - }) - }), - ), -) - -it.effect("rejects a malformed take call ID", () => - Effect.scoped( - Effect.gen(function* () { - const controller = yield* ToolProducer.make(new Set()) - expect(yield* controller.controls.take(null as unknown as string).pipe(Effect.flip)).toMatchObject({ - operation: "take", - reason: "rejected", - }) - }), - ), -) - -it.live("retries in-flight progress after reconnect without advancing its sequence", () => - Effect.scoped( - Effect.gen(function* () { - let updates = 0 - const firstUpdate = yield* Deferred.make() - const peer = startTransportPeer(({ request, socket }) => { - if (request.method === "tool.update" && ++updates === 1) { - Deferred.doneUnsafe(firstUpdate, Effect.void) - socket.close() - return - } - sendResult(socket, request, request.method === "tool.attach" ? { attached: true } : { ok: true }) - }) - yield* Effect.addFinalizer(() => - Effect.sync(() => { - // Bun does not resolve server.stop after this peer initiates a WebSocket close. - void peer.stop() - }), - ) - const controller = yield* ToolProducer.make(new Set()) - const firstScope = yield* Scope.make() - const first = yield* SimulationConnector.backend(peer.url, { - attach: false, - }).pipe(Scope.provide(firstScope)) - const firstAttachment = yield* controller.connect(first) - yield* controller.controls.attach({ tools: [registration] }) - notify(peer.received[0].socket, "tool.invocation", invocation) - const call = yield* controller.controls.take("call_lookup") - - const progress = yield* call.progress({ structured: { phase: "searching" } }).pipe(Effect.forkScoped) - yield* Deferred.await(firstUpdate) - yield* first.closed - yield* firstAttachment.detach() - yield* Scope.close(firstScope, Exit.void) - const secondScope = yield* Scope.make() - const second = yield* SimulationConnector.backend(peer.url, { - attach: false, - }).pipe(Scope.provide(secondScope)) - const secondAttachment = yield* controller.connect(second) - yield* Fiber.join(progress) - yield* call.fail("finished") - - expect( - peer.received.filter(({ request }) => request.method === "tool.update").map(({ request }) => request.params), - ).toEqual([ - { - id: "tool_1", - sequence: 0, - update: { structured: { phase: "searching" } }, - }, - { - id: "tool_1", - sequence: 0, - update: { structured: { phase: "searching" } }, - }, - ]) - yield* secondAttachment.detach() - yield* Scope.close(secondScope, Exit.void) - yield* controller.endGeneration - yield* controller.shutdown - }), - ), -) - -it.live("does not retry progress interrupted by its caller", () => - Effect.scoped( - Effect.gen(function* () { - const updateReceived = yield* Deferred.make() - const peer = startTransportPeer(({ request, socket }) => { - if (request.method === "tool.update") { - Deferred.doneUnsafe(updateReceived, Effect.void) - return - } - sendResult(socket, request, request.method === "tool.attach" ? { attached: true } : { ok: true }) - }) - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const backend = yield* SimulationConnector.backend(peer.url, { - attach: false, - }) - const controller = yield* ToolProducer.make(new Set()) - yield* controller.connect(backend) - yield* controller.controls.attach({ tools: [registration] }) - notify(peer.received[0].socket, "tool.invocation", invocation) - const call = yield* controller.controls.take("call_lookup") - - const progress = yield* call.progress({ structured: { phase: "searching" } }).pipe(Effect.forkScoped) - yield* Deferred.await(updateReceived) - yield* Fiber.interrupt(progress) - yield* call.fail("finished") - - expect(peer.received.filter(({ request }) => request.method === "tool.update")).toHaveLength(1) - }), - ), -) - -it.live("rejects malformed progress without advancing its sequence", () => - Effect.scoped( - Effect.gen(function* () { - const peer = startTransportPeer(({ request, socket }) => - sendResult(socket, request, request.method === "tool.attach" ? { attached: true } : { ok: true }), - ) - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const backend = yield* SimulationConnector.backend(peer.url, { - attach: false, - }) - const controller = yield* ToolProducer.make(new Set()) - yield* controller.connect(backend) - yield* controller.controls.attach({ tools: [registration] }) - notify(peer.received[0].socket, "tool.invocation", invocation) - const call = yield* controller.controls.take("call_lookup") - - const malformed = { structured: [] } as unknown as Progress - expect(yield* call.progress(malformed).pipe(Effect.flip)).toMatchObject({ - operation: "progress", - reason: "rejected", - callID: "call_lookup", - }) - yield* call.progress({ structured: { phase: "valid" } }) - yield* call.fail("finished") - - expect( - peer.received.filter(({ request }) => request.method === "tool.update").map(({ request }) => request.params), - ).toEqual([ - { - id: "tool_1", - sequence: 0, - update: { structured: { phase: "valid" } }, - }, - ]) - }), - ), -) - -it.live("rejects dynamic names that collide with static adapters", () => - Effect.scoped( - Effect.gen(function* () { - const peer = startTransportPeer(({ request, socket }) => sendResult(socket, request, { attached: true })) - yield* Effect.addFinalizer(() => Effect.promise(() => peer.stop())) - const backend = yield* SimulationConnector.backend(peer.url, { - attach: false, - }) - const controller = yield* ToolProducer.make(new Set(["shell"])) - yield* controller.connect(backend) - - expect( - yield* controller.controls - .attach({ - tools: [{ ...registration, name: "shell" }], - }) - .pipe(Effect.flip), - ).toMatchObject({ - operation: "attach", - reason: "rejected", - message: expect.stringContaining("static adapter: shell"), - }) - expect(peer.received).toEqual([]) - }), - ), -) diff --git a/packages/drive/tsconfig.json b/packages/drive/tsconfig.json deleted file mode 100644 index 33345d2dc64..00000000000 --- a/packages/drive/tsconfig.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/tsconfig", - "extends": "@tsconfig/bun/tsconfig.json", - "compilerOptions": { - "strict": true, - "noEmit": true, - "skipLibCheck": true - }, - "include": ["src", "examples", "compile"] -} diff --git a/packages/drive/vitest.config.ts b/packages/drive/vitest.config.ts deleted file mode 100644 index a488d7d1266..00000000000 --- a/packages/drive/vitest.config.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { defineConfig } from "vitest/config" - -export default defineConfig({ - test: { - fileParallelism: false, - hookTimeout: 30_000, - exclude: ["test/cli/integration.test.ts", "test/fixtures/**"], - include: ["test/**/*.test.ts"], - testTimeout: 30_000, - }, -}) diff --git a/packages/lab/catalog/.gitignore b/packages/lab/catalog/.gitignore deleted file mode 100644 index 7cc6eedfac0..00000000000 --- a/packages/lab/catalog/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -.tmp/ -node_modules/ -.DS_Store -dist/ diff --git a/packages/lab/catalog/.wrangler/state/v3/cache/miniflare-CacheObject/metadata.sqlite b/packages/lab/catalog/.wrangler/state/v3/cache/miniflare-CacheObject/metadata.sqlite deleted file mode 100644 index 0b58f0dca7d..00000000000 Binary files a/packages/lab/catalog/.wrangler/state/v3/cache/miniflare-CacheObject/metadata.sqlite and /dev/null differ diff --git a/packages/lab/catalog/.wrangler/state/v3/cache/miniflare-CacheObject/metadata.sqlite-shm b/packages/lab/catalog/.wrangler/state/v3/cache/miniflare-CacheObject/metadata.sqlite-shm deleted file mode 100644 index b64af811221..00000000000 Binary files a/packages/lab/catalog/.wrangler/state/v3/cache/miniflare-CacheObject/metadata.sqlite-shm and /dev/null differ diff --git a/packages/lab/catalog/.wrangler/state/v3/cache/miniflare-CacheObject/metadata.sqlite-wal b/packages/lab/catalog/.wrangler/state/v3/cache/miniflare-CacheObject/metadata.sqlite-wal deleted file mode 100644 index ab1364dae80..00000000000 Binary files a/packages/lab/catalog/.wrangler/state/v3/cache/miniflare-CacheObject/metadata.sqlite-wal and /dev/null differ diff --git a/packages/lab/catalog/AGENTS.md b/packages/lab/catalog/AGENTS.md deleted file mode 100644 index cf228f5dcc0..00000000000 --- a/packages/lab/catalog/AGENTS.md +++ /dev/null @@ -1,145 +0,0 @@ -# OpenCode Terminal Catalog Agent Guide - -## Purpose - -This repository is the OpenCode-specific catalog application. It owns the scripted state suite, authored taxonomy, variant manifests, raw frame artifacts, browser renderer, review interactions, and deployment. - -OpenCode Drive is the generic lifecycle and automation module. Do not move catalog concepts, OpenCode screen IDs, taxonomies, or comparison UI into Drive. - -## Architecture - -```text -OpenCode simulation protocol - ui.capture -> normalized terminal frame - | -OpenCode Drive - isolated lifecycle + typed UI/LLM control - | -Terminal catalog capture runner - authored scenario + variants + deterministic manifest - | -Catalog compiler - boundary validation + taxonomy/flow compilation - | -React catalog - canvas renderer + filtering + variant navigation -``` - -The module seams are: - -- `scripts/capture-opencode-drive.ts`: executes the canonical state scenario against one or more variants. -- `catalog/schema.ts`: versioned persisted and browser data contracts. -- `catalog/authoring.ts`: validates the capture graph and compiles authored metadata. -- `src/components/TerminalFrame.tsx`: derives canvas pixels from normalized frames. -- `src/App.tsx`: owns active variant and selected screen state. - -## State Addresses - -Executable states have canonical `/` addresses. The catalog viewer's **Copy ID** action copies that address in flow mode. In screen and UI-element modes it copies the standalone capture ID. - -Resolve and reproduce an executable state with: - -```bash -bun run reproduce -- patch-success-lifecycle/permission-prompt \ - --opencode /path/to/opencode -``` - -The command executes the recipe only through the selected state and prints the path to a normalized `opencode-terminal-frame-v1` artifact. `packages/lab/catalog/scenarios/index.ts` is the executable-flow registry used for string resolution. An address is agent-replayable only after its flow is registered there; narrative catalog flows that have not migrated to executable recipes are browse-only. - -## Protocol Convention - -Keep Drive `--command.ui.*` names and parameter shapes identical to the frontend portion of the canonical OpenCode simulation protocol. The raw-frame command is `ui.capture` with no parameters. - -Protocol changes originate in OpenCode, then are copied directly into Drive. Do not add aliases, convenience protocol commands, or backend LLM controls to the CLI. - -`ui.capture` landed on OpenCode's `v2` branch in anomalyco/opencode#37135. - -## Frame Contract - -`opencode-terminal-frame-v1` is the authoritative visual artifact. It contains: - -- `cols`, `rows`, and cursor coordinates. -- Lines of run-length-encoded spans. -- Span text and display-cell width. -- Resolved RGBA foreground/background tuples. -- OpenTUI text-attribute bits. - -PNG is not authoritative. Do not reintroduce routine checked-in PNG capture. - -The browser renderer must preserve the canonical 10 by 20 pixel cell geometry and use the bundled Commit Mono and Noto symbol/math fallback stack. Ordinary Unicode symbols belong in fallback fonts, not hand-drawn code. Render only terminal cell primitives such as solid blocks and structural bars geometrically. Cell geometry, attribute bits, and the block/bar glyph table are shared with the Drive PNG renderer through `opencode-drive/frame`; extend that module instead of hand-syncing constants. - -The frame format is renderer-neutral. An SVG exporter should consume the same frame artifacts rather than changing capture. - -## Variants - -Variants are independent capture environments, not duplicated screen definitions. - -```bash -bun run capture -- \ - --opencode /path/to/opencode \ - --revision v2~1 \ - --revision v2 \ - --theme opencode \ - --theme rosepine -``` - -Each variant must have: - -- A unique lowercase slug ID. -- An OpenCode checkout path. -- A recorded checkout basename and Git revision. -- An optional OpenCode theme name. - -Variants run concurrently with separate `OpenCodeDriver` instances. Steps inside a variant are sequential because later permission, question, subagent, and session states depend on earlier actions. Preserve deterministic manifest ordering regardless of execution concurrency. - -The MVP displays one active variant at a time. In the viewer, left/right moves through flow steps and up/down changes the active variant. Do not add split comparison unless explicitly requested. - -## Authored And Generated Files - -Edit these by hand: - -- `catalog/authored/taxonomies.ts` -- `catalog/authored/screens.ts` -- `catalog/authored/flows.ts` -- Capture scenario code and application source. - -Generate, never hand-edit: - -- `public/captures/**/*.frame.json` -- `public/drive-captures.json` -- `public/catalog.json` -- `dist/` - -If OpenCode UI copy drifts, inspect the current target checkout and update exact markers. Do not paper over synchronization failures with large unconditional sleeps. - -## Scope - -- The annotation system was deliberately removed. Do not restore annotation routes, storage, KV bindings, or markup UI without an explicit product decision. -- OpenCode Drive is the generic published package in this monorepo (`packages/drive`); this app owns everything OpenCode-catalog-specific, and the package must not import the app. -- The catalog package is private and deployed only as internal developer tooling under `dev.opencode.ai/lab`. - -## Verification - -After capture or schema changes, run: - -```bash -bun run generate -bun run typecheck -bun run test -bun run build -bunx oxlint src catalog scripts server.ts worker.ts -``` - -For UI changes, verify in a real browser at desktop and mobile widths: - -- Every expected canvas loads without console errors. -- Intrinsic dimensions equal `cols * 10` by `rows * 20`. -- Left/right moves through flow steps; up/down switches variants. -- Up/down moves screens only inside the viewer. -- The page has no horizontal overflow on mobile. - -For protocol changes, also run the OpenCode simulation tests and the full OpenCode Drive test suite. - -## Dependencies - -The catalog consumes OpenCode Drive as a Bun workspace dependency (`"opencode-drive": "workspace:*"`) and imports only its published entry points (`opencode-drive`, `opencode-drive/driver`, `opencode-drive/client` for protocol schemas, and the browser-safe `opencode-drive/frame` for renderer geometry). Never import package-internal `src/` paths. diff --git a/packages/lab/catalog/README.md b/packages/lab/catalog/README.md deleted file mode 100644 index 3ac20a2ff3c..00000000000 --- a/packages/lab/catalog/README.md +++ /dev/null @@ -1,235 +0,0 @@ -# OpenCode Terminal Catalog - -Internal deployment: - -Capture a reproducible catalog of OpenCode terminal states from local checkouts, browse every state in one web app, and flip between themes or branches without changing the selected screen. - -The generated manifest is the source of truth for the current state count. It covers navigation, sessions, assistant responses, questions, subagents, shell, file patches, reads, project search, web tools, permissions, notifications, and review surfaces. - -## Prerequisites - -- [Bun](https://bun.sh/) 1.3 or newer. -- A current local OpenCode v2 checkout with dependencies installed. - -## Install - -```bash -gh repo clone anomalyco/opencode -cd opencode/packages/lab/catalog -bun install -``` - -The OpenCode checkout can live anywhere. Capture commands receive its path explicitly; no sibling-directory layout is required. - -## Capture Revision Sets - -```bash -bun run capture -- \ - --opencode $HOME/code/opencode \ - --revision v2~1 \ - --revision v2 - -bun run generate -bun run dev -``` - -Open the URL printed by `bun run dev`. - -Each revision is resolved to an immutable commit and captured from an isolated detached worktree. Set IDs are derived from the commit SHA, prior sets remain in the manifest, and rerunning the same commit/theme replaces only that set. Sets are ordered by commit time, so the newest commit is selected when the catalog opens. - -Prepared revision worktrees are cached under `.tmp/capture-worktrees`. Warm captures reuse the exact resolved commit and its installed dependencies; pass `--fresh` to deliberately rebuild the prepared checkout. Full capture groups scenarios by their declared LLM response mode and reuses one OpenCode process within each group. Frames are staged under `.tmp` and replace the revision directory only after every scenario succeeds. - -During scenario development, execute one registered flow without changing the authoritative manifest: - -```bash -bun run capture -- \ - --opencode $HOME/code/opencode \ - --revision v2 \ - --flow search-lifecycle -``` - -Preview frames are written under `.tmp/capture-runs`. The scenario registry in `scenarios/index.ts` is authoritative for capture, canonical replay addresses, authored screens, and replayable flow metadata. - -When `--revision` is omitted, capture resolves `origin/v2`; it never trusts the checkout's current `HEAD`, which may be a stale feature branch. - -## Compare Themes - -Variants can use the same OpenCode checkout with different configured themes: - -```bash -bun run capture -- \ - --opencode $HOME/code/opencode \ - --revision v2 \ - --theme opencode \ - --theme rosepine - -bun run generate -bun run dev -``` - -Repeated revisions and themes form a cross-product. Use `--theme default` to include OpenCode's configured default alongside named themes. Built-in names include `opencode`, `nord`, `one-dark`, `gruvbox`, `rosepine`, `solarized`, `monokai`, and `palenight`. - -In the catalog: - -- Use the capture-set picker or press up/down to compare revisions and themes without losing the current screen. -- In the viewer, press left/right to move through flow steps and up/down to switch capture sets. -- Use **Copy ID** to copy the active flow state address, or the capture ID when browsing screens directly. -- Open captures have stable `screen`, `flow`, and `set` URL parameters for sharing an exact catalog state. -- Right-click any terminal image to copy its canonical ID or deep link. -- Click a card to open its full-screen viewer and press `Escape` to close it. -- Press `Cmd+K` or `Ctrl+K` to search screens, labels, UI elements, and flows. - -Reproduce a registered executable state against an OpenCode checkout: - -```bash -bun run reproduce -- patch-success-lifecycle/permission-prompt \ - --opencode /path/to/opencode -``` - -The command prints the path to a normalized terminal frame. Only states from flows registered in `scenarios/index.ts` are currently reproducible; other catalog flows remain browse-only until their recipes are migrated. - -## Compare Branches - -Capture any refs available in one OpenCode checkout: - -```bash -bun run capture -- \ - --opencode $HOME/code/opencode \ - --revision origin/v2 \ - --revision v2 - -bun run generate -bun run dev -``` - -The common local feature-branch comparison is: - -```bash -bun run capture -- \ - --opencode /path/to/opencode \ - --revision origin/v2 \ - --revision HEAD -``` - -Commit local changes first: capture sets intentionally resolve Git commits and exclude an uncommitted working tree. In the catalog, `origin/v2` is the before set and `HEAD` is the after set; use the picker or up/down without losing the selected state. - -Themes and checkout comparisons can be combined: - -```bash -bun run capture -- \ - --opencode $HOME/code/opencode \ - --revision origin/v2 \ - --revision v2 \ - --theme nord \ - --theme rosepine -``` - -Each capture set runs in an isolated OpenCode Drive instance. Independent sets capture concurrently, while states inside one set remain sequential so session-dependent states stay deterministic. - -## Agent Workflow - -An agent can operate the full workflow using ordinary shell commands. Give it the catalog repository path, the OpenCode checkout paths, and the variants you want. - -Example request: - -```text -Capture the OpenCode terminal catalog with these variants: - -- baseline: ~/code/opencode-main using the opencode theme -- redesign: ~/code/opencode-redesign using the rosepine theme - -Run generation, typecheck, tests, and the production build. Start the local -catalog and verify that left/right moves through flow steps while up/down changes variants. -Do not hand-edit generated frame files. -``` - -The equivalent commands are: - -```bash -bun install -bun run capture -- \ - --opencode $HOME/code/opencode \ - --revision v2~1 \ - --revision v2 \ - --theme opencode \ - --theme rosepine -bun run generate -bun run typecheck -bun run test -bun run build -bun run dev -``` - -Repository-specific architecture and editing rules for agents are in [`AGENTS.md`](./AGENTS.md). - -## Generated Artifacts - -Capture writes: - -```text -public/drive-captures.json -public/captures//.frame.json -``` - -Generation reads those files and writes: - -```text -public/catalog.json -``` - -Raw terminal frames are authoritative. They preserve text spans, cell widths, resolved RGBA colors, text attributes, cursor position, and terminal dimensions. The browser derives canvas pixels from those frames with Commit Mono. PNG and SVG renderers can be added later without recapturing states. - -Do not edit generated frame or manifest files manually. Change the capture scenario or authored catalog metadata and regenerate them. - -## Catalog Metadata - -Human-authored classification lives in: - -```text -catalog/authored/taxonomies.ts -catalog/authored/screens.ts -catalog/authored/flows.ts -``` - -These files control titles, labels, UI elements, facets, and flow membership independently of terminal capture data. - -## Validation - -Run the complete local validation: - -```bash -bun run generate -bun run typecheck -bun run test -bun run build -``` - -Generation validates every frame's schema, viewport, row count, and cell width before producing `catalog.json`. - -## Deploy - -The application deploys as a Cloudflare Worker with static assets: - -```bash -bun run deploy -``` - -Current deployment: https://dev.opencode.ai/lab/catalog - -## Troubleshooting - -### `ui.capture` is unknown - -The target OpenCode checkout predates the simulation protocol change. Fetch and update to the current `v2` branch, which includes [PR #37135](https://github.com/anomalyco/opencode/pull/37135). - -### Capture times out waiting for text - -OpenCode UI copy changed. Read the current v2 TUI source, update the exact wait marker in `scripts/capture-opencode-drive.ts`, and rerun the whole capture. Do not weaken waits with arbitrary sleeps. - -### A theme does not appear - -Confirm the theme name in OpenCode's `/themes` picker. Theme names are passed directly to OpenCode configuration. - -### The browser shows stale assets - -Restart `bun run dev` after changing dependencies, then reload the page. Production builds always start from a clean `dist/` directory. diff --git a/packages/lab/catalog/catalog/authored/flows.ts b/packages/lab/catalog/catalog/authored/flows.ts deleted file mode 100644 index 758a877ee64..00000000000 --- a/packages/lab/catalog/catalog/authored/flows.ts +++ /dev/null @@ -1,116 +0,0 @@ -import { defineFlows } from "../dsl" -import { executableFlowDefinitions } from "../../scenarios" -import { screens } from "./screens" - -export const flowGroups = defineFlows(screens, { - "getting-started": { - label: "Getting started", - flows: { - "starting-a-session": { - title: "Starting a session", - description: "Begin from the OpenCode start screen and prepare a new conversation.", - steps: [ - { capture: "home", title: "Start a new conversation", trigger: "Open OpenCode" }, - { capture: "model-picker", title: "Choose a model", trigger: "Open the model picker" }, - { capture: "agent-picker", title: "Choose an agent", trigger: "Open the agent picker" }, - ], - }, - }, - }, - "session-management": { - label: "Session management", - flows: { - ...executableFlowDefinitions("session-management"), - "switching-sessions": { - title: "Switching sessions", - description: "Find an existing conversation and resume it from the session picker.", - steps: [ - { capture: "command-palette", title: "Open session navigation", trigger: "Open the command palette" }, - { capture: "session-picker", title: "Open the session picker", trigger: "Run Switch session" }, - { capture: "session-picker-populated", title: "Select a session", trigger: "Search, then press Enter" }, - ], - }, - "renaming-a-session": { - title: "Renaming a session", - description: "Give the current conversation a recognizable name.", - steps: [ - { capture: "session-picker-populated", title: "Identify the current session" }, - { capture: "session-rename", title: "Enter the new name", trigger: "Run /rename" }, - ], - }, - "forking-a-session": { - title: "Forking a session", - description: "Branch an existing conversation from a selected message.", - steps: [ - { capture: "session-picker-populated", title: "Open the source session" }, - { capture: "session-fork", title: "Choose the fork point", trigger: "Run /fork" }, - ], - }, - "exporting-a-session": { - title: "Exporting a session", - description: "Choose an export format and confirm the transcript was copied.", - steps: [ - { capture: "session-export", title: "Choose an export format", trigger: "Run /export" }, - { capture: "toast-success", title: "Confirm the export", trigger: "Complete the export action" }, - ], - }, - }, - }, - "tool-use": { - label: "Tool use", - flows: { - ...executableFlowDefinitions("tool-use"), - "answering-a-question": { - title: "Answering an agent question", - description: "Respond to a structured question without leaving the conversation.", - steps: [ - { capture: "question-prompt", title: "Choose or enter an answer", trigger: "Submit the question form" }, - ], - }, - }, - }, - subagents: { - label: "Subagents", - flows: executableFlowDefinitions("subagents"), - }, - responses: { - label: "Responses", - flows: executableFlowDefinitions("responses"), - }, - configuration: { - label: "Configuration", - flows: { - "connecting-an-integration": { - title: "Connecting an integration", - description: "Choose an integration and verify its connection state.", - steps: [ - { capture: "integration-picker", title: "Choose an integration" }, - { capture: "status", title: "Check the connection status" }, - ], - }, - "managing-mcp-servers": { - title: "Managing MCP servers", - description: "Inspect configured MCP servers and their runtime status.", - steps: [ - { capture: "mcp-list", title: "Open MCP management" }, - { capture: "status", title: "Inspect MCP status" }, - ], - }, - "pairing-a-device": { - title: "Pairing a device", - description: "Open the pairing code used to connect another device.", - steps: [{ capture: "pair", title: "Scan the pairing code" }], - }, - }, - }, - review: { - label: "Review", - flows: { - "reviewing-a-diff": { - title: "Reviewing a diff", - description: "Inspect the working tree and verify whether files have changed.", - steps: [{ capture: "diff-viewer", title: "Open the diff viewer", trigger: "Run /diff" }], - }, - }, - }, -}) diff --git a/packages/lab/catalog/catalog/authored/index.ts b/packages/lab/catalog/catalog/authored/index.ts deleted file mode 100644 index 4d3480c18bc..00000000000 --- a/packages/lab/catalog/catalog/authored/index.ts +++ /dev/null @@ -1,10 +0,0 @@ -import type { CatalogDefinition } from "../dsl" -import { flowGroups } from "./flows" -import { screens } from "./screens" -import { taxonomies } from "./taxonomies" - -export const definition = { - taxonomies, - screens, - flowGroups, -} satisfies CatalogDefinition diff --git a/packages/lab/catalog/catalog/authored/screens.ts b/packages/lab/catalog/catalog/authored/screens.ts deleted file mode 100644 index 1d18f13db1b..00000000000 --- a/packages/lab/catalog/catalog/authored/screens.ts +++ /dev/null @@ -1,229 +0,0 @@ -import { defineScreens, type ScreenId } from "../dsl" -import { executableScreens } from "../../scenarios" -import { taxonomies } from "./taxonomies" - -export const screens = defineScreens(taxonomies, { - home: { - title: "Home", - category: "system", - screenLabels: ["start-screen", "new-session", "composer"], - uiElements: ["composer", "keyboard-hints", "full-screen-view", "empty-state"], - surfaces: "full-screen", - patterns: "landing", - features: ["system", "session"], - states: "empty", - }, - "command-palette": { - title: "Command palette", - category: "navigation", - screenLabels: ["command-navigation"], - uiElements: ["command-palette", "search-field", "list", "keyboard-hints", "dialog"], - surfaces: "modal", - patterns: "palette", - features: ["commands", "navigation"], - states: "default", - }, - "model-picker": { - title: "Model picker", - category: "picker", - screenLabels: ["model-selection"], - uiElements: ["picker", "search-field", "single-select", "list", "dialog", "keyboard-hints"], - surfaces: "modal", - patterns: "picker", - features: "model", - states: "default", - }, - "agent-picker": { - title: "Agent picker", - category: "picker", - screenLabels: ["agent-selection"], - uiElements: ["picker", "search-field", "single-select", "list", "dialog", "keyboard-hints"], - surfaces: "modal", - patterns: "picker", - features: "agent", - states: "default", - }, - "integration-picker": { - title: "Integrations", - category: "picker", - screenLabels: ["integration-setup"], - uiElements: ["picker", "single-select", "list", "dialog"], - surfaces: "modal", - patterns: "picker", - features: "integration", - states: "default", - }, - "theme-picker": { - title: "Theme picker", - category: "picker", - screenLabels: ["theme-selection"], - uiElements: ["picker", "single-select", "list", "dialog"], - surfaces: "modal", - patterns: "picker", - features: "theme", - states: "default", - }, - "mcp-list": { - title: "MCPs", - category: "status", - screenLabels: ["mcp-management"], - uiElements: ["list", "dialog", "empty-state"], - surfaces: "modal", - patterns: "list", - features: "mcp", - states: "empty", - }, - status: { - title: "Status", - category: "status", - screenLabels: ["system-status", "mcp-management"], - uiElements: ["status-indicator", "list", "dialog", "empty-state"], - surfaces: "modal", - patterns: "status", - features: ["system", "mcp"], - states: "empty", - }, - debug: { - title: "Debug", - category: "information", - screenLabels: ["debugging", "system-status"], - uiElements: ["debug-information", "dialog"], - surfaces: "modal", - patterns: "info", - features: ["debug", "system"], - states: "default", - }, - help: { - title: "Help", - category: "information", - screenLabels: ["help-reference", "command-navigation"], - uiElements: ["shortcut-list", "keyboard-hints", "dialog", "list"], - surfaces: "modal", - patterns: "info", - features: ["help", "shortcuts"], - states: "default", - }, - pair: { - title: "Pair device", - category: "information", - screenLabels: ["device-pairing", "integration-setup"], - uiElements: ["qr-code", "dialog"], - surfaces: "modal", - patterns: "pairing", - features: "device", - states: "default", - }, - "session-picker": { - title: "Session picker", - category: "session", - screenLabels: ["session-list"], - uiElements: ["picker", "search-field", "single-select", "list", "dialog", "keyboard-hints", "empty-state"], - surfaces: "modal", - patterns: "picker", - features: "session", - states: "empty", - }, - "skill-picker": { - title: "Skill picker", - category: "session", - screenLabels: ["skill-selection"], - uiElements: ["picker", "search-field", "single-select", "list", "dialog", "keyboard-hints"], - surfaces: "modal", - patterns: "picker", - features: "skill", - states: "default", - }, - ...executableScreens, - "session-rename": { - title: "Rename session", - category: "session", - screenLabels: ["rename-session"], - uiElements: ["dialog", "form", "text-input"], - surfaces: "modal", - patterns: "form", - features: "session", - states: "default", - }, - "session-fork": { - title: "Fork session", - category: "session", - screenLabels: ["fork-session"], - uiElements: ["dialog", "picker", "single-select", "list"], - surfaces: "modal", - patterns: "picker", - features: "session", - states: "default", - }, - "session-export": { - title: "Export session", - category: "session", - screenLabels: ["export-session"], - uiElements: ["dialog", "form", "single-select", "button-group"], - surfaces: "modal", - patterns: "form", - features: ["session", "export"], - states: "default", - }, - "question-prompt": { - title: "Question prompt", - category: "session", - screenLabels: ["question-response", "tool-execution"], - uiElements: ["inline-prompt", "question-prompt", "form", "single-select", "button-group", "confirmation"], - surfaces: "inline", - patterns: "form", - features: ["question", "tool"], - states: "confirmation", - }, - "session-picker-populated": { - title: "Session picker (populated)", - category: "session", - screenLabels: ["session-list"], - uiElements: ["picker", "search-field", "single-select", "list", "dialog", "keyboard-hints"], - surfaces: "modal", - patterns: "picker", - features: "session", - states: "populated", - }, - "toast-success": { - title: "Success toast", - category: "system", - screenLabels: ["export-session", "toast-success"], - uiElements: ["toast", "confirmation", "transcript"], - surfaces: "toast", - patterns: "notification", - features: ["session", "export", "notification"], - states: "success", - }, - "toast-info": { - title: "Info toast", - category: "system", - screenLabels: ["debugging", "toast-info"], - uiElements: ["toast", "confirmation"], - surfaces: "toast", - patterns: "notification", - features: ["debug", "notification"], - states: "default", - }, - "toast-error": { - title: "Error toast", - category: "system", - screenLabels: ["error-recovery", "toast-error"], - uiElements: ["toast", "error-report"], - surfaces: "toast", - patterns: "notification", - features: "notification", - states: "error", - }, - "diff-viewer": { - title: "Diff viewer", - category: "session", - screenLabels: ["diff-review"], - uiElements: ["full-screen-view", "list", "keyboard-hints", "empty-state"], - surfaces: "full-screen", - patterns: "list", - features: ["diff", "session"], - states: "empty", - }, -}) - -export type CaptureId = ScreenId diff --git a/packages/lab/catalog/catalog/authored/taxonomies.ts b/packages/lab/catalog/catalog/authored/taxonomies.ts deleted file mode 100644 index 8653b2edcdc..00000000000 --- a/packages/lab/catalog/catalog/authored/taxonomies.ts +++ /dev/null @@ -1,134 +0,0 @@ -import { defineTaxonomies } from "../dsl" - -export const taxonomies = defineTaxonomies({ - screenLabels: { - "getting-started": { - label: "Getting started", - items: { - "start-screen": "Start screen", - "new-session": "New session", - }, - }, - conversation: { - label: "Conversation", - items: { - composer: "Composer", - "question-response": "Question response", - "tool-execution": "Tool execution", - "diff-review": "Diff review", - "subagent-activity": "Subagent activity", - "shell-activity": "Shell activity", - }, - }, - "session-management": { - label: "Session management", - items: { - "session-list": "Session list", - "rename-session": "Rename session", - "fork-session": "Fork session", - "export-session": "Export session", - }, - }, - notifications: { - label: "Notifications", - items: { - "toast-info": "Info toast", - "toast-success": "Success toast", - "toast-error": "Error toast", - }, - }, - "models-and-agents": { - label: "Models & agents", - items: { - "model-selection": "Model selection", - "agent-selection": "Agent selection", - "skill-selection": "Skill selection", - }, - }, - configuration: { - label: "Configuration", - items: { - "integration-setup": "Integration setup", - "mcp-management": "MCP management", - "theme-selection": "Theme selection", - "device-pairing": "Device pairing", - }, - }, - system: { - label: "System", - items: { - "command-navigation": "Command navigation", - "system-status": "System status", - "help-reference": "Help & reference", - debugging: "Debugging", - "error-recovery": "Error recovery", - }, - }, - }, - uiElements: { - navigation: { - label: "Navigation", - items: { - "command-palette": "Command palette", - tabs: "Tabs", - "keyboard-hints": "Keyboard hints", - "shortcut-list": "Shortcut list", - }, - }, - selection: { - label: "Selection", - items: { - picker: "Picker", - "search-field": "Search field", - "single-select": "Single select", - list: "List", - }, - }, - input: { - label: "Input", - items: { - "text-input": "Text input", - form: "Form", - composer: "Composer", - "question-prompt": "Question prompt", - }, - }, - actions: { - label: "Actions", - items: { - "button-group": "Button group", - "approval-actions": "Approval actions", - "destructive-action": "Destructive action", - }, - }, - feedback: { - label: "Feedback", - items: { - "empty-state": "Empty state", - "status-indicator": "Status indicator", - toast: "Toast", - confirmation: "Confirmation", - "error-report": "Error report", - }, - }, - content: { - label: "Content", - items: { - "terminal-output": "Terminal output", - transcript: "Transcript", - "tool-card": "Tool card", - "qr-code": "QR code", - "debug-information": "Debug information", - }, - }, - containers: { - label: "Containers", - items: { - dialog: "Dialog", - "inline-prompt": "Inline prompt", - panel: "Panel", - "full-screen-view": "Full-screen view", - }, - }, - }, -}) diff --git a/packages/lab/catalog/catalog/authoring.test.ts b/packages/lab/catalog/catalog/authoring.test.ts deleted file mode 100644 index 6f67af86ce9..00000000000 --- a/packages/lab/catalog/catalog/authoring.test.ts +++ /dev/null @@ -1,272 +0,0 @@ -import { describe, expect, test } from "bun:test" -import { Effect } from "effect" -import "./authoring.typecheck" -import { compileCatalog } from "./authoring" -import type { CatalogDefinition, ScreenDefinition } from "./dsl" -import type { DriveManifest } from "./schema" - -const manifest: DriveManifest = { - format: "opencode-terminal-frame-captures-v1", - generatedBy: "scripts/capture-opencode-drive.ts", - variants: [ - { - id: "baseline", - label: "Baseline", - source: "/tmp/opencode", - revision: "abc123", - ref: "v2", - committedAt: "2026-07-17T10:17:51Z", - theme: "opencode", - }, - ], - captures: [ - { - id: "home", - title: "Home", - category: "system", - frames: [ - { - variantId: "baseline", - src: "captures/baseline/home.frame.json", - cols: 118, - rows: 34, - }, - ], - }, - ], -} - -const homeDefinition = { - title: "Home", - category: "system", - screenLabels: ["start-screen"], - uiElements: ["full-screen-view"], - surfaces: "full-screen", - patterns: "landing", - features: "session", - states: "empty", -} satisfies ScreenDefinition - -const definition: CatalogDefinition = { - taxonomies: { - screenLabels: { - "getting-started": { - label: "Getting started", - items: { "start-screen": "Start screen" }, - }, - }, - uiElements: { - containers: { - label: "Containers", - items: { "full-screen-view": "Full-screen view" }, - }, - }, - }, - screens: { - home: homeDefinition, - }, - flowGroups: { - "getting-started": { - label: "Getting started", - flows: { - "starting-a-session": { - title: "Starting a session", - description: "Begin a new conversation.", - steps: [{ capture: "home", title: "Open OpenCode" }], - }, - }, - }, - }, -} - -describe("catalog authoring", () => { - test("compiles authored records into the runtime catalog", async () => { - const catalog = await Effect.runPromise(compileCatalog(definition, manifest)) - - expect(catalog.screenTaxonomy[0]).toEqual({ - id: "getting-started", - label: "Getting started", - items: [{ id: "start-screen", label: "Start screen" }], - }) - expect(catalog.screens[0]?.tags).toEqual([ - "start-screen", - "full-screen-view", - "full-screen", - "landing", - "session", - "empty", - ]) - expect(catalog.flows[0]?.steps[0]?.screenId).toBe("home") - }) - - test("uses authored display metadata without requiring a recapture", async () => { - const catalog = await Effect.runPromise( - compileCatalog( - { - ...definition, - screens: { - home: { ...homeDefinition, title: "Start screen" }, - }, - }, - manifest, - ), - ) - - expect(catalog.screens[0]?.title).toBe("Start screen") - }) - - test("allows older capture sets to omit screens introduced later", async () => { - const catalog = await Effect.runPromise( - compileCatalog(definition, { - ...manifest, - variants: [ - manifest.variants[0], - { - id: "older", - label: "Older", - source: "/tmp/opencode", - revision: "def456", - ref: "v2~1", - committedAt: "2026-07-16T10:17:51Z", - }, - ], - }), - ) - - expect(catalog.screens[0]?.frames.map((frame) => frame.variantId)).toEqual(["baseline"]) - }) - - test("rejects frames for unknown capture sets", async () => { - const error = await Effect.runPromise( - compileCatalog(definition, { - ...manifest, - captures: [ - { - id: "home", - title: "Home", - category: "system", - frames: [ - { - variantId: "unknown", - src: "captures/unknown/home.frame.json", - cols: 118, - rows: 34, - }, - ], - }, - ], - }).pipe(Effect.flip), - ) - - expect(error._tag).toBe("CatalogBuildError") - if (error._tag !== "CatalogBuildError") return - expect(error.issues).toContainEqual({ - path: "drive-captures.json.captures.home.frames", - message: "Capture home references unknown variant unknown", - }) - }) - - test("reports every missing and orphaned capture together", async () => { - const error = await Effect.runPromise( - compileCatalog( - { - ...definition, - screens: { - orphan: homeDefinition, - }, - }, - manifest, - ).pipe(Effect.flip), - ) - - expect(error._tag).toBe("CatalogBuildError") - if (error._tag !== "CatalogBuildError") return - expect(error.issues.map((issue) => issue.message)).toEqual([ - "Capture home has no authored screen definition", - "Authored screen orphan has no capture", - "Flow starting-a-session references unknown capture home", - ]) - }) - - test("rejects taxonomy IDs repeated across groups", async () => { - const error = await Effect.runPromise( - compileCatalog( - { - ...definition, - taxonomies: { - ...definition.taxonomies, - screenLabels: { - first: { label: "First", items: { repeated: "Repeated" } }, - second: { label: "Second", items: { repeated: "Repeated again" } }, - }, - }, - screens: { - home: { - ...homeDefinition, - screenLabels: ["repeated"], - }, - }, - }, - manifest, - ).pipe(Effect.flip), - ) - - expect(error._tag).toBe("CatalogBuildError") - if (error._tag !== "CatalogBuildError") return - expect(error.issues).toContainEqual({ - path: "screenLabels", - message: "Duplicate value repeated", - }) - }) - - test("reports invalid authored values as build errors", async () => { - const error = await Effect.runPromise( - compileCatalog( - { - ...definition, - taxonomies: { - ...definition.taxonomies, - screenLabels: { - "getting-started": { - label: "", - items: { "start-screen": "Start screen" }, - }, - }, - }, - }, - manifest, - ).pipe(Effect.flip), - ) - - expect(error._tag).toBe("CatalogBuildError") - if (error._tag !== "CatalogBuildError") return - expect(error.issues[0]?.path).toBe("catalog") - }) - - test("rejects flow IDs repeated across groups", async () => { - const repeatedFlow = { - title: "Starting a session", - description: "Begin a new conversation.", - steps: [{ capture: "home", title: "Open OpenCode" }], - } as const - const error = await Effect.runPromise( - compileCatalog( - { - ...definition, - flowGroups: { - first: { label: "First", flows: { repeated: repeatedFlow } }, - second: { label: "Second", flows: { repeated: repeatedFlow } }, - }, - }, - manifest, - ).pipe(Effect.flip), - ) - - expect(error._tag).toBe("CatalogBuildError") - if (error._tag !== "CatalogBuildError") return - expect(error.issues).toContainEqual({ - path: "flowGroups", - message: "Duplicate value repeated", - }) - }) -}) diff --git a/packages/lab/catalog/catalog/authoring.ts b/packages/lab/catalog/catalog/authoring.ts deleted file mode 100644 index 6f9977930b2..00000000000 --- a/packages/lab/catalog/catalog/authoring.ts +++ /dev/null @@ -1,205 +0,0 @@ -import { Effect } from "effect" -import { Catalog, CatalogBuildError, type CatalogIssue, type DriveManifest } from "./schema" -import type { CatalogDefinition, FlowStepDefinition, NonEmpty, OneOrMany, TaxonomyDefinition } from "./dsl" - -export const compileCatalog = Effect.fn("Catalog.compile")(function* ( - definition: CatalogDefinition, - manifest: DriveManifest, -) { - const issues = collectIssues(definition, manifest) - const first = issues[0] - if (first) { - return yield* new CatalogBuildError({ issues: [first, ...issues.slice(1)] }) - } - - const screenTaxonomy = normalizeTaxonomy(definition.taxonomies.screenLabels) - const uiElementTaxonomy = normalizeTaxonomy(definition.taxonomies.uiElements) - const screens = manifest.captures.map((capture) => { - const authored = definition.screens[capture.id] - if (!authored) throw new Error(`Validated screen definition missing for ${capture.id}`) - const firstFrame = capture.frames[0] - const surfaces = normalize(authored.surfaces) - const patterns = normalize(authored.patterns) - const features = normalize(authored.features) - const states = normalize(authored.states) - return { - id: capture.id, - title: authored.title, - category: authored.category, - summary: "", - tags: [...authored.screenLabels, ...authored.uiElements, ...surfaces, ...patterns, ...features, ...states], - screenLabels: authored.screenLabels, - uiElements: authored.uiElements, - surfaces, - patterns, - features, - states, - dimensions: [] as const, - viewport: { cols: firstFrame.cols, rows: firstFrame.rows }, - variations: [] as const, - frames: capture.frames, - } - }) - const flows = Object.entries(definition.flowGroups).flatMap(([, group]) => - Object.entries(group.flows).map(([id, flow]) => { - const [first, ...rest] = flow.steps - const steps: NonEmpty> = [ - normalizeFlowStep(first), - ...rest.map(normalizeFlowStep), - ] - return { - id, - title: flow.title, - group: group.label, - description: flow.description, - replayable: flow.replayable ?? false, - steps, - } - }), - ) - - return yield* Catalog.makeEffect({ - format: "opencode-terminal-catalog-v3", - generatedBy: manifest.generatedBy, - variants: manifest.variants, - screenTaxonomy, - uiElementTaxonomy, - surfaces: facetValues(screens, (screen) => screen.surfaces), - patterns: facetValues(screens, (screen) => screen.patterns), - features: facetValues(screens, (screen) => screen.features), - states: facetValues(screens, (screen) => screen.states), - screens, - flows, - }).pipe( - Effect.mapError( - (cause) => - new CatalogBuildError({ - issues: [{ path: "catalog", message: cause.toString() }], - }), - ), - ) -}) - -function normalize(value: OneOrMany): ReadonlyArray { - return typeof value === "string" ? [value] : value -} - -function normalizeFlowStep(step: FlowStepDefinition) { - return { - screenId: step.capture, - title: step.title, - ...(step.trigger === undefined ? {} : { trigger: step.trigger }), - ...(step.description === undefined ? {} : { description: step.description }), - } -} - -function normalizeTaxonomy(definition: TaxonomyDefinition) { - return Object.entries(definition).map(([id, group]) => ({ - id, - label: group.label, - items: Object.entries(group.items).map(([itemId, label]) => ({ id: itemId, label })), - })) -} - -function facetValues( - screens: ReadonlyArray, - select: (screen: Screen) => ReadonlyArray, -) { - return Array.from(new Set(screens.flatMap(select))).sort() -} - -function collectIssues(definition: CatalogDefinition, manifest: DriveManifest): Array { - const issues: Array = [] - const captureIds = manifest.captures.map((capture) => capture.id) - const variantIds = manifest.variants.map((variant) => variant.id) - const captureIdSet = new Set(captureIds) - const screenIds = Object.keys(definition.screens) - const screenIdSet = new Set(screenIds) - const screenLabelIds = taxonomyIds(definition.taxonomies.screenLabels, "screenLabels", issues) - const uiElementIds = taxonomyIds(definition.taxonomies.uiElements, "uiElements", issues) - - duplicateIssues(captureIds, "drive-captures.json.captures", issues) - duplicateIssues(variantIds, "drive-captures.json.variants", issues) - - for (const capture of manifest.captures) { - const frameVariantIds = capture.frames.map((frame) => frame.variantId) - duplicateIssues(frameVariantIds, `drive-captures.json.captures.${capture.id}.frames`, issues) - for (const variantId of frameVariantIds) { - if (!variantIds.includes(variantId)) { - issues.push({ - path: `drive-captures.json.captures.${capture.id}.frames`, - message: `Capture ${capture.id} references unknown variant ${variantId}`, - }) - } - } - const screen = definition.screens[capture.id] - if (!screen) { - issues.push({ - path: `screens.${capture.id}`, - message: `Capture ${capture.id} has no authored screen definition`, - }) - continue - } - } - - for (const screenId of screenIds) { - if (!captureIdSet.has(screenId)) { - issues.push({ path: `screens.${screenId}`, message: `Authored screen ${screenId} has no capture` }) - } - const screen = definition.screens[screenId] - if (!screen) continue - referenceIssues(screen.screenLabels, screenLabelIds, `screens.${screenId}.screenLabels`, issues) - referenceIssues(screen.uiElements, uiElementIds, `screens.${screenId}.uiElements`, issues) - duplicateIssues(screen.screenLabels, `screens.${screenId}.screenLabels`, issues) - duplicateIssues(screen.uiElements, `screens.${screenId}.uiElements`, issues) - duplicateIssues(normalize(screen.surfaces), `screens.${screenId}.surfaces`, issues) - duplicateIssues(normalize(screen.patterns), `screens.${screenId}.patterns`, issues) - duplicateIssues(normalize(screen.features), `screens.${screenId}.features`, issues) - duplicateIssues(normalize(screen.states), `screens.${screenId}.states`, issues) - } - - const flowIds: Array = [] - for (const [groupId, group] of Object.entries(definition.flowGroups)) { - for (const [flowId, flow] of Object.entries(group.flows)) { - flowIds.push(flowId) - if (flow.steps.length === 0) { - issues.push({ path: `flowGroups.${groupId}.${flowId}.steps`, message: `Flow ${flowId} has no steps` }) - } - for (const [index, step] of flow.steps.entries()) { - if (!screenIdSet.has(step.capture)) { - issues.push({ - path: `flowGroups.${groupId}.${flowId}.steps.${index}.capture`, - message: `Flow ${flowId} references unknown capture ${step.capture}`, - }) - } - } - } - } - duplicateIssues(flowIds, "flowGroups", issues) - return issues -} - -function taxonomyIds(taxonomy: TaxonomyDefinition, path: string, issues: Array): ReadonlySet { - const ids = Object.values(taxonomy).flatMap((group) => Object.keys(group.items)) - duplicateIssues(ids, path, issues) - return new Set(ids) -} - -function duplicateIssues(values: ReadonlyArray, path: string, issues: Array) { - const seen = new Set() - for (const value of values) { - if (seen.has(value)) issues.push({ path, message: `Duplicate value ${value}` }) - seen.add(value) - } -} - -function referenceIssues( - values: ReadonlyArray, - known: ReadonlySet, - path: string, - issues: Array, -) { - for (const value of values) { - if (!known.has(value)) issues.push({ path, message: `Unknown reference ${value}` }) - } -} diff --git a/packages/lab/catalog/catalog/authoring.typecheck.ts b/packages/lab/catalog/catalog/authoring.typecheck.ts deleted file mode 100644 index 364b6e64464..00000000000 --- a/packages/lab/catalog/catalog/authoring.typecheck.ts +++ /dev/null @@ -1,115 +0,0 @@ -import { defineFlows, defineScreens, defineTaxonomies } from "./dsl" -import { defineExecutableFlow, executeFlow } from "./flow" - -const taxonomies = defineTaxonomies({ - screenLabels: { - session: { label: "Session", items: { "session-list": "Session list" } }, - }, - uiElements: { - selection: { label: "Selection", items: { picker: "Picker" } }, - }, -}) - -const screens = defineScreens(taxonomies, { - "session-picker": { - title: "Session picker", - category: "session", - screenLabels: ["session-list"], - uiElements: ["picker"], - surfaces: "modal", - patterns: "picker", - features: "session", - states: "default", - }, -}) - -// @ts-expect-error Unknown screen labels are rejected at the authoring site. -defineScreens(taxonomies, { - invalid: { - title: "Invalid", - category: "session", - screenLabels: ["session-lits"], - uiElements: ["picker"], - surfaces: "modal", - patterns: "picker", - features: "session", - states: "default", - }, -}) - -defineScreens(taxonomies, { - invalid: { - title: "Invalid", - category: "session", - screenLabels: ["session-list"], - uiElements: ["picker"], - // @ts-expect-error Closed facet vocabularies reject typo-created filters. - surfaces: "modla", - patterns: "picker", - features: "session", - states: "default", - }, -}) - -// @ts-expect-error Flow steps can only reference authored screen keys. -defineFlows(screens, { - session: { - label: "Session", - flows: { - invalid: { - title: "Invalid flow", - description: "Type-level reference check.", - steps: [ - { - capture: "session-pikcer", - title: "Open the picker", - }, - ], - }, - }, - }, -}) - -const firstFlow = defineExecutableFlow( - taxonomies, - { - id: "first-flow", - title: "First flow", - group: { id: "tests", label: "Tests" }, - description: "First flow.", - }, - ({ state, program }) => { - const first = state("first", { - screen: screens["session-picker"], - step: { title: "First" }, - }) - return program([first], ({ checkpoint }) => checkpoint(first)) - }, -) - -const secondFlow = defineExecutableFlow( - taxonomies, - { - id: "second-flow", - title: "Second flow", - group: { id: "tests", label: "Tests" }, - description: "Second flow.", - }, - ({ state, program }) => { - const second = state("second", { - screen: screens["session-picker"], - step: { title: "Second" }, - }) - return program([second], ({ checkpoint }) => { - // @ts-expect-error Checkpoints only accept states declared by this flow. - return checkpoint(firstFlow.states[0]) - }) - }, -) - -executeFlow(secondFlow, { - driver: undefined as never, - // @ts-expect-error Selected states must belong to the executed flow. - through: firstFlow.states[0], - capture: () => undefined as never, -}) diff --git a/packages/lab/catalog/catalog/capture-sets.test.ts b/packages/lab/catalog/catalog/capture-sets.test.ts deleted file mode 100644 index 23a48143e56..00000000000 --- a/packages/lab/catalog/catalog/capture-sets.test.ts +++ /dev/null @@ -1,81 +0,0 @@ -import { describe, expect, test } from "bun:test" -import { resolve } from "node:path" -import { captureMatrixManifest, captureSetId, captureSetLabel, parseCaptureOptions } from "../scripts/capture-sets" - -describe("capture revision sets", () => { - test("parses repeated revisions and themes", () => { - expect( - parseCaptureOptions( - [ - "--opencode", - "./opencode", - "--revision", - "v2~1", - "--revision", - "v2", - "--theme", - "opencode", - "--theme", - "rosepine", - ], - "/default", - ), - ).toEqual({ - opencode: resolve("opencode"), - revisions: ["v2~1", "v2"], - themes: ["opencode", "rosepine"], - flow: undefined, - fresh: false, - jobs: 3, - workerOutput: undefined, - }) - }) - - test("defaults to the canonical v2 branch instead of a stale checkout HEAD", () => { - expect(parseCaptureOptions([], "/opencode").revisions).toEqual(["origin/v2"]) - }) - - test("selects one flow and deliberately refreshes its prepared worktree", () => { - expect(parseCaptureOptions(["--flow", "search-lifecycle", "--fresh"], "/opencode")).toMatchObject({ - flow: "search-lifecycle", - fresh: true, - }) - }) - - test("derives stable theme IDs and labels", () => { - expect(captureSetId("ABCDEF1234567890", undefined)).toBe("abcdef123456") - expect(captureSetId("ABCDEF1234567890", "One Dark")).toBe("one-dark") - expect(captureSetId("ABCDEF1234567890", "One Dark", true)).toBe("abcdef123456-one-dark") - expect(captureSetLabel("abcdef1234567890", "opencode")).toBe("Opencode") - expect(captureSetLabel("abcdef1234567890", "tokyonight")).toBe("Tokyo Night") - expect(captureSetLabel("abcdef1234567890", "everforest")).toBe("Everforest") - }) - - test("publishes only the requested theme matrix", () => { - const variant = { - id: "opencode", - label: "Opencode", - source: "opencode", - revision: "a".repeat(40), - ref: "HEAD", - committedAt: "2026-08-12T12:00:00Z", - theme: "opencode", - } - const manifest = captureMatrixManifest( - [variant], - [ - { - id: "home", - title: "Home", - category: "system", - frames: [{ variantId: "opencode", src: "captures/opencode/home.frame.json", cols: 2, rows: 2 }], - }, - ], - ) - - expect(manifest.variants).toEqual([variant]) - expect(manifest.captures[0]?.frames).toEqual([ - { variantId: "opencode", src: "captures/opencode/home.frame.json", cols: 2, rows: 2 }, - ]) - }) -}) diff --git a/packages/lab/catalog/catalog/deep-link.test.ts b/packages/lab/catalog/catalog/deep-link.test.ts deleted file mode 100644 index 5956b025cd9..00000000000 --- a/packages/lab/catalog/catalog/deep-link.test.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { describe, expect, test } from "bun:test" -import { catalogBrowseUrl, readCatalogLocation } from "../src/deep-link" - -describe("catalog deep links", () => { - test("round-trips filters and removes an open viewer", () => { - const url = catalogBrowseUrl( - { - variantId: "baseline", - mode: "ui-elements", - query: "session", - screenLabels: [], - uiElements: ["dialog", "tabs"], - surfaces: ["modal"], - patterns: [], - features: ["session"], - states: ["default", "running"], - }, - new URL("https://catalog.example/?screen=session-picker&flow=sessions"), - ) - - expect(url).toBe( - "https://catalog.example/?set=baseline&mode=ui-elements&q=session&ui-element=dialog&ui-element=tabs&surface=modal&feature=session&state=default&state=running", - ) - expect(readCatalogLocation(new URL(url))).toMatchObject({ - variantId: "baseline", - mode: "ui-elements", - query: "session", - uiElements: ["dialog", "tabs"], - surfaces: ["modal"], - features: ["session"], - states: ["default", "running"], - }) - }) -}) diff --git a/packages/lab/catalog/catalog/dsl.ts b/packages/lab/catalog/catalog/dsl.ts deleted file mode 100644 index 5beef01e33c..00000000000 --- a/packages/lab/catalog/catalog/dsl.ts +++ /dev/null @@ -1,139 +0,0 @@ -export type NonEmpty = readonly [A, ...ReadonlyArray] -export type OneOrMany = A | NonEmpty - -export const ScreenCategories = ["system", "navigation", "picker", "status", "information", "session"] as const -export type ScreenCategory = (typeof ScreenCategories)[number] - -export const Surfaces = ["full-screen", "modal", "inline", "panel", "toast"] as const -export type Surface = (typeof Surfaces)[number] - -export const Patterns = [ - "landing", - "palette", - "picker", - "list", - "status", - "info", - "pairing", - "approval", - "form", - "terminal", - "notification", - "error-report", - "navigation", -] as const -export type Pattern = (typeof Patterns)[number] - -export const States = [ - "default", - "empty", - "populated", - "pending", - "idle", - "running", - "streaming", - "selected", - "expanded", - "confirmation", - "success", - "error", -] as const -export type ScreenState = (typeof States)[number] - -export type TaxonomyDefinition = Readonly< - Record< - string, - { - readonly label: string - readonly items: Readonly> - } - > -> - -type ValueOf = T[keyof T] -export type TaxonomyItemId = - ValueOf extends infer Group - ? Group extends { readonly items: infer Items extends Readonly> } - ? Extract - : never - : never - -export interface Taxonomies { - readonly screenLabels: ScreenLabels - readonly uiElements: UiElements -} - -export interface ScreenDefinition { - readonly title: string - readonly category: ScreenCategory - readonly screenLabels: NonEmpty - readonly uiElements: NonEmpty - readonly surfaces: OneOrMany - readonly patterns: OneOrMany - readonly features: OneOrMany - readonly states: OneOrMany -} - -export type ScreenDefinitions = Readonly< - Record> -> - -export type ScreenId> = Extract - -export interface FlowStepDefinition { - readonly capture: CaptureId - readonly title: string - readonly trigger?: string - readonly description?: string -} - -export interface FlowDefinition { - readonly title: string - readonly description: string - readonly replayable?: boolean - readonly steps: NonEmpty> -} - -export type FlowGroupDefinitions = Readonly< - Record< - string, - { - readonly label: string - readonly flows: Readonly>> - } - > -> - -export interface CatalogDefinition { - readonly taxonomies: Taxonomies - readonly screens: ScreenDefinitions - readonly flowGroups: FlowGroupDefinitions -} - -export function defineTaxonomies< - const ScreenLabels extends TaxonomyDefinition, - const UiElements extends TaxonomyDefinition, ->(definitions: { - readonly screenLabels: ScreenLabels - readonly uiElements: UiElements -}): Taxonomies { - return definitions -} - -export function defineScreens< - ScreenLabels extends TaxonomyDefinition, - UiElements extends TaxonomyDefinition, - const Definitions extends ScreenDefinitions, ->( - taxonomies: Taxonomies, - definitions: Definitions & ScreenDefinitions, TaxonomyItemId>, -): Definitions { - return definitions -} - -export function defineFlows< - Screens extends ScreenDefinitions, - const Definitions extends FlowGroupDefinitions, ->(screens: Screens, definitions: Definitions & FlowGroupDefinitions>): Definitions { - return definitions -} diff --git a/packages/lab/catalog/catalog/feedback.test.ts b/packages/lab/catalog/catalog/feedback.test.ts deleted file mode 100644 index cb50a2a691f..00000000000 --- a/packages/lab/catalog/catalog/feedback.test.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { describe, expect, test } from "bun:test" -import { feedbackIssueUrl } from "../src/feedback" -import { annotationUrl, readAnnotations } from "../src/annotations" - -describe("catalog feedback", () => { - test("opens a prefilled issue for an exact capture", () => { - const url = new URL( - feedbackIssueUrl({ - title: "Skill picker", - identifier: "skill-picker", - deepLink: "https://dev.opencode.ai/lab/catalog?screen=skill-picker&set=opencode", - variant: "opencode", - }), - ) - - expect(`${url.origin}${url.pathname}`).toBe("https://github.com/anomalyco/opencode/issues/new") - expect(url.searchParams.get("title")).toBe("[Catalog feedback] Skill picker") - expect(url.searchParams.get("labels")).toBe("catalog,design-feedback") - expect(url.searchParams.get("body")).toContain("`skill-picker`") - expect(url.searchParams.get("body")).toContain("screen=skill-picker&set=opencode") - }) - - test("round-trips a capture annotation document through the URL fragment", () => { - const document = { - version: 1 as const, - identifier: "skill-picker", - variant: "opencode", - annotations: [{ id: "one", row: 4, column: 12, note: "This label needs more contrast." }], - } - const url = new URL(annotationUrl("https://dev.opencode.ai/lab/catalog?screen=skill-picker", document)) - - expect(url.hash).toStartWith("#annotations=") - expect(readAnnotations(url, "skill-picker", "opencode")).toEqual(document.annotations) - expect(readAnnotations(url, "other-screen", "opencode")).toEqual([]) - }) - - test("includes human and machine-readable annotations in the issue", () => { - const annotations = [{ id: "one", row: 4, column: 12, note: "This label needs more contrast." }] - const document = { version: 1 as const, identifier: "skill-picker", variant: "opencode", annotations } - const url = new URL( - feedbackIssueUrl({ - title: "Skill picker", - identifier: "skill-picker", - deepLink: annotationUrl("https://dev.opencode.ai/lab/catalog?screen=skill-picker", document), - variant: "opencode", - annotations, - document, - }), - ) - const body = url.searchParams.get("body") ?? "" - - expect(body).toContain("## 1. Row 5, column 13") - expect(body).toContain("This label needs more contrast.") - expect(body).toContain("Annotation data") - expect(body).toContain('"row": 4') - }) -}) diff --git a/packages/lab/catalog/catalog/flow.test.ts b/packages/lab/catalog/catalog/flow.test.ts deleted file mode 100644 index 418e5b49138..00000000000 --- a/packages/lab/catalog/catalog/flow.test.ts +++ /dev/null @@ -1,119 +0,0 @@ -import { describe, expect, test } from "bun:test" -import { Effect } from "effect" -import type { Driver } from "opencode-drive/driver" -import { defineTaxonomies } from "./dsl" -import { defineExecutableFlow, executeFlow, FlowStateNotReachedError } from "./flow" - -const taxonomies = defineTaxonomies({ - screenLabels: { - session: { label: "Session", items: { transcript: "Transcript" } }, - }, - uiElements: { - status: { label: "Status", items: { message: "Message" } }, - }, -}) - -const stateMetadata = (title: string) => ({ - screen: { - title, - category: "session" as const, - screenLabels: ["transcript"] as const, - uiElements: ["message"] as const, - surfaces: "inline" as const, - patterns: "status" as const, - features: "test", - states: "default" as const, - }, - step: { title }, -}) - -function fixture(trace: Array) { - return defineExecutableFlow( - taxonomies, - { - id: "test-flow", - title: "Test flow", - group: { id: "tests", label: "Tests" }, - description: "Exercises flow checkpoints.", - }, - ({ state, program }) => { - const first = state("first", stateMetadata("First")) - const second = state("second", stateMetadata("Second")) - const third = state("third", stateMetadata("Third")) - return program([first, second, third], ({ checkpoint }) => - Effect.gen(function* () { - trace.push("first") - yield* checkpoint(first) - trace.push("second") - yield* checkpoint(second) - trace.push("third") - yield* checkpoint(third) - }), - ) - }, - ) -} - -const driver = undefined as unknown as Driver - -describe("executable catalog flows", () => { - test("captures every declared checkpoint in program order", async () => { - const trace: Array = [] - const captured: Array = [] - const flow = fixture(trace) - - await Effect.runPromise( - executeFlow(flow, { - driver, - capture: (state) => Effect.sync(() => captured.push(state.address)), - }), - ) - - expect(trace).toEqual(["first", "second", "third"]) - expect(captured).toEqual(["test-flow/first", "test-flow/second", "test-flow/third"]) - }) - - test("captures one selected state and interrupts the remaining program", async () => { - const trace: Array = [] - const captured: Array = [] - const flow = fixture(trace) - - await Effect.runPromise( - executeFlow(flow, { - driver, - through: flow.states[1], - capture: (state) => Effect.sync(() => captured.push(state.address)), - }), - ) - - expect(trace).toEqual(["first", "second"]) - expect(captured).toEqual(["test-flow/second"]) - }) - - test("rejects a full run that does not reach every declared state", async () => { - const incomplete = defineExecutableFlow( - taxonomies, - { - id: "incomplete-flow", - title: "Incomplete flow", - group: { id: "tests", label: "Tests" }, - description: "Omits its final state.", - }, - ({ state, program }) => { - const first = state("first", stateMetadata("First")) - const missing = state("missing", stateMetadata("Missing")) - return program([first, missing], ({ checkpoint }) => checkpoint(first)) - }, - ) - - const error = await Effect.runPromise( - executeFlow(incomplete, { - driver, - capture: () => Effect.void, - }).pipe(Effect.flip), - ) - - expect(error).toBeInstanceOf(FlowStateNotReachedError) - expect(error).toMatchObject({ address: "incomplete-flow/missing" }) - }) -}) diff --git a/packages/lab/catalog/catalog/flow.ts b/packages/lab/catalog/catalog/flow.ts deleted file mode 100644 index ec4dd806233..00000000000 --- a/packages/lab/catalog/catalog/flow.ts +++ /dev/null @@ -1,241 +0,0 @@ -import * as Deferred from "effect/Deferred" -import * as Effect from "effect/Effect" -import type { Driver } from "opencode-drive/driver" -import type { - FlowStepDefinition, - NonEmpty, - ScreenDefinition, - Taxonomies, - TaxonomyDefinition, - TaxonomyItemId, -} from "./dsl" - -const FlowStateTypeId: unique symbol = Symbol("CatalogFlowState") - -export interface FlowStateMetadata { - readonly screen: ScreenDefinition - readonly step: Omit, "capture"> -} - -export interface FlowState< - FlowId extends string, - StateId extends string, - Metadata extends FlowStateMetadata = FlowStateMetadata, -> { - readonly [FlowStateTypeId]: (flow: FlowId) => FlowId - readonly id: StateId - readonly address: `${FlowId}/${StateId}` - readonly metadata: Metadata -} - -type AnyFlowState = FlowState - -export interface FlowRunContext>> { - readonly driver: Driver - readonly checkpoint: (state: States[number]) => Effect.Effect -} - -interface FlowProgram>, Error, Requirements> { - readonly states: States - readonly run: (context: FlowRunContext) => Effect.Effect -} - -export interface ExecutableFlow< - FlowId extends string, - States extends NonEmpty>, - Error, - Requirements, - GroupId extends string = string, -> { - readonly id: FlowId - readonly title: string - readonly group: { readonly id: GroupId; readonly label: string } - readonly description: string - readonly states: States - readonly run: (context: FlowRunContext) => Effect.Effect -} - -export interface ExecutableScenarioState { - readonly id: string - readonly address: string - readonly metadata: FlowStateMetadata -} - -export interface ExecutableScenario { - readonly id: string - readonly title: string - readonly group: { readonly id: string; readonly label: string } - readonly description: string - readonly llmMode: "queue" | "serve" - readonly clientIsolation: "shared" | "isolated" - readonly states: ReadonlyArray - readonly run: (options: { - readonly driver: Driver - readonly through?: string - readonly capture: (state: ExecutableScenarioState) => Effect.Effect - }) => Effect.Effect -} - -interface FlowAuthor { - readonly state: >( - id: StateId, - metadata: Metadata, - ) => FlowState - readonly program: >, Error, Requirements>( - states: States, - run: (context: FlowRunContext) => Effect.Effect, - ) => FlowProgram -} - -export function defineExecutableFlow< - ScreenLabels extends TaxonomyDefinition, - UiElements extends TaxonomyDefinition, - const FlowId extends string, - const GroupId extends string, - const States extends NonEmpty>, - Error, - Requirements, ->( - taxonomies: Taxonomies, - definition: { - readonly id: FlowId - readonly title: string - readonly group: { readonly id: GroupId; readonly label: string } - readonly description: string - }, - build: ( - author: FlowAuthor, TaxonomyItemId>, - ) => FlowProgram, -): ExecutableFlow { - void taxonomies - const author: FlowAuthor, TaxonomyItemId> = { - state: (id, metadata) => ({ - [FlowStateTypeId]: (flow) => flow, - id, - address: `${definition.id}/${id}`, - metadata, - }), - program: (states, run) => ({ states, run }), - } - const program = build(author) - return { ...definition, ...program } -} - -export class FlowStateNotReachedError extends Error { - readonly _tag = "FlowStateNotReachedError" - - constructor(readonly address: string) { - super(`Flow completed without reaching ${address}`) - } -} - -export class FlowCheckpointOrderError extends Error { - readonly _tag = "FlowCheckpointOrderError" - - constructor( - readonly expected: string, - readonly actual: string, - ) { - super(`Expected checkpoint ${expected}, received ${actual}`) - } -} - -export function executeFlow< - const FlowId extends string, - const States extends NonEmpty>, - FlowError, - FlowRequirements, - CaptureError, ->( - flow: ExecutableFlow, - options: { - readonly driver: Driver - readonly through?: States[number] - readonly capture: (state: States[number]) => Effect.Effect - }, -): Effect.Effect< - void, - FlowError | CaptureError | FlowCheckpointOrderError | FlowStateNotReachedError, - FlowRequirements -> { - const target = options.through - if (target === undefined) { - return Effect.gen(function* () { - let index = 0 - yield* flow.run({ - driver: options.driver, - checkpoint: (state) => - Effect.gen(function* () { - const expected = flow.states[index] - if (state !== expected) { - return yield* Effect.fail( - new FlowCheckpointOrderError(expected?.address ?? "the end of the flow", state.address), - ) - } - index++ - yield* options.capture(state) - }), - }) - const missing = flow.states[index] - if (missing) return yield* Effect.fail(new FlowStateNotReachedError(missing.address)) - }) - } - - return Effect.gen(function* () { - const reached = yield* Deferred.make() - let index = 0 - const program = flow - .run({ - driver: options.driver, - checkpoint: (state) => - Effect.gen(function* () { - const expected = flow.states[index] - if (state !== expected) { - return yield* Effect.fail( - new FlowCheckpointOrderError(expected?.address ?? "the end of the flow", state.address), - ) - } - index++ - if (state !== target) return - return yield* options - .capture(state) - .pipe(Effect.andThen(Deferred.succeed(reached, undefined)), Effect.andThen(Effect.never)) - }), - }) - .pipe(Effect.andThen(Effect.fail(new FlowStateNotReachedError(target.address)))) - yield* Effect.raceFirst(Deferred.await(reached), program) - }) -} - -export function executableScenario< - const FlowId extends string, - const States extends NonEmpty>, - FlowError, - const GroupId extends string, ->( - flow: ExecutableFlow, - options: { - readonly llmMode?: "queue" | "serve" - readonly clientIsolation?: "shared" | "isolated" - } = {}, -): ExecutableScenario & { - readonly flow: ExecutableFlow -} { - return { - flow, - id: flow.id, - title: flow.title, - group: flow.group, - description: flow.description, - llmMode: options.llmMode ?? "queue", - clientIsolation: options.clientIsolation ?? "shared", - states: flow.states, - run: ({ driver, through, capture }) => { - const target = through === undefined ? undefined : flow.states.find((state) => state.id === through) - if (through !== undefined && target === undefined) { - return Effect.fail(new Error(`Unknown state ${JSON.stringify(`${flow.id}/${through}`)}`)) - } - return executeFlow(flow, { driver, through: target, capture }) - }, - } -} diff --git a/packages/lab/catalog/catalog/font-coverage.test.ts b/packages/lab/catalog/catalog/font-coverage.test.ts deleted file mode 100644 index d76934e8064..00000000000 --- a/packages/lab/catalog/catalog/font-coverage.test.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { expect, test } from "bun:test" -import mathUnicode from "@fontsource/noto-sans-math/unicode.json" -import symbolsUnicode from "@fontsource/noto-sans-symbols/unicode.json" -import symbols2Unicode from "@fontsource/noto-sans-symbols-2/unicode.json" - -const OpenCodeSymbols = [..."△⇆⊙⚙✱↳◌◈⟳▸▾■⬝⬥⬩⬪"] - -test("the bundled fallback font declares coverage for OpenCode symbols", () => { - const ranges = [symbolsUnicode.symbols, symbols2Unicode.symbols, mathUnicode.math] - .flatMap((value) => value.split(",")) - .map((range) => { - const [start, end = start] = range.slice(2).split("-") - return [Number.parseInt(start!, 16), Number.parseInt(end!, 16)] as const - }) - - expect( - OpenCodeSymbols.filter((symbol) => { - const codePoint = symbol.codePointAt(0)! - return !ranges.some(([start, end]) => codePoint >= start && codePoint <= end) - }), - ).toEqual([]) -}) diff --git a/packages/lab/catalog/catalog/lifecycle-flows.test.ts b/packages/lab/catalog/catalog/lifecycle-flows.test.ts deleted file mode 100644 index 8a9a73f0010..00000000000 --- a/packages/lab/catalog/catalog/lifecycle-flows.test.ts +++ /dev/null @@ -1,75 +0,0 @@ -import { describe, expect, test } from "bun:test" -import { executableFlows, executableScenarios, executableStates } from "../scenarios" -import { catalogScenarioRuntime, catalogViewport } from "../scenarios/runtime" -import { shellLifecycleFlow } from "../scenarios/tools/shell-lifecycle" -import { subagentLifecycleFlow } from "../scenarios/subagents/subagent-lifecycle" -import { sessionTabsFlow } from "../scenarios/session-tabs" -import { patchSuccessFlow } from "../scenarios/tools/patch-success" -import { flowGroups } from "./authored/flows" -import { screens } from "./authored/screens" - -describe("catalog lifecycle scenarios", () => { - test("registers canonical executable state addresses", () => { - expect(shellLifecycleFlow.states.map((state) => state.address)).toEqual([ - "shell-lifecycle/thinking-streaming", - "shell-lifecycle/shell-input-streaming", - "shell-lifecycle/shell-output-streaming", - "shell-lifecycle/shell-execute-succeeded", - "shell-lifecycle/shell-execute-failed", - ]) - expect(subagentLifecycleFlow.states.map((state) => state.address)).toEqual([ - "subagent-lifecycle/subagent-running", - "subagent-lifecycle/subagent-completed", - "subagent-lifecycle/subagent-session", - ]) - expect(sessionTabsFlow.states.map((state) => state.address)).toEqual([ - "session-tabs-lifecycle/session-tabs-running", - "session-tabs-lifecycle/session-tabs-idle", - ]) - expect(patchSuccessFlow.states.map((state) => state.address)).toContain( - "patch-success-lifecycle/permission-fullscreen", - ) - expect(executableFlows).toContain(shellLifecycleFlow) - expect(executableFlows).toContain(subagentLifecycleFlow) - expect(executableStates.map((state) => state.address)).toContain("shell-lifecycle/shell-execute-failed") - expect(executableStates.map((state) => state.address)).toContain("subagent-lifecycle/subagent-session") - }) - - test("authors screens and replayable flows from executable scenarios", () => { - const authored = Object.values(flowGroups).flatMap((group) => Object.entries(group.flows)) - for (const scenario of executableScenarios) { - for (const state of scenario.states) { - const authoredScreen = Object.entries(screens).find(([id]) => id === state.id)?.[1] - expect(authoredScreen === state.metadata.screen).toBe(true) - } - expect(authored.find(([id]) => id === scenario.id)?.[1].replayable).toBe(true) - } - expect(flowGroups["tool-use"].flows["shell-lifecycle"].replayable).toBe(true) - expect(flowGroups.subagents.flows["subagent-lifecycle"].replayable).toBe(true) - expect(flowGroups["session-management"].flows["session-tabs-lifecycle"].replayable).toBe(true) - }) - - test("declares the one dynamic response-mode scenario", () => { - expect( - executableScenarios.filter((scenario) => scenario.llmMode === "serve").map((scenario) => scenario.id), - ).toEqual(["subagent-lifecycle"]) - }) - - test("isolates scenarios that cannot safely reset their TUI client", () => { - expect( - executableScenarios.filter((scenario) => scenario.clientIsolation === "isolated").map((scenario) => scenario.id), - ).toEqual(["assistant-lifecycle", "question-lifecycle", "read-file-lifecycle", "session-tabs-lifecycle"]) - }) - - test("builds the shared capture and reproduce driver runtime", () => { - const runtime = catalogScenarioRuntime({ opencode: "/tmp/opencode", theme: "rosepine" }) - expect(runtime.opencode).toEqual({ dev: "/tmp/opencode" }) - expect(runtime.tui?.viewport).toEqual(catalogViewport) - expect(runtime.project?.files).toMatchObject({ - "fixture.txt": "before\n", - "src/ledger.ts": expect.stringContaining("total"), - }) - expect(runtime.tools).toBeFunction() - expect(runtime.setup).toBeFunction() - }) -}) diff --git a/packages/lab/catalog/catalog/response-tool-flows.test.ts b/packages/lab/catalog/catalog/response-tool-flows.test.ts deleted file mode 100644 index 59fcc3744b6..00000000000 --- a/packages/lab/catalog/catalog/response-tool-flows.test.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { describe, expect, test } from "bun:test" -import { assistantLifecycleFlow } from "../scenarios/responses/assistant-lifecycle" -import { questionLifecycleFlow } from "../scenarios/tools/question-lifecycle" - -describe("response and question executable flows", () => { - test("exports the assistant lifecycle states in execution order", () => { - expect(assistantLifecycleFlow.states.map((state) => state.address)).toEqual([ - "assistant-lifecycle/assistant-response-succeeded", - "assistant-lifecycle/assistant-response-failed", - "assistant-lifecycle/assistant-response-interrupted", - ]) - }) - - test("exports the question lifecycle states in execution order", () => { - expect(questionLifecycleFlow.states.map((state) => state.address)).toEqual([ - "question-lifecycle/question-input-streaming", - "question-lifecycle/question-awaiting-form", - "question-lifecycle/question-review", - "question-lifecycle/question-succeeded", - "question-lifecycle/question-denied", - ]) - }) - - test("uses distinct terminal states for each lifecycle", () => { - expect(assistantLifecycleFlow.states.map((state) => state.metadata.screen.states)).toEqual([ - "success", - "error", - "error", - ]) - expect(questionLifecycleFlow.states.at(-1)?.metadata.screen.states).toBe("error") - }) -}) diff --git a/packages/lab/catalog/catalog/schema.ts b/packages/lab/catalog/catalog/schema.ts deleted file mode 100644 index bbcb3e58571..00000000000 --- a/packages/lab/catalog/catalog/schema.ts +++ /dev/null @@ -1,148 +0,0 @@ -import { Schema } from "effect" -import { Frontend } from "opencode-drive/client" -import { Patterns, ScreenCategories, States, Surfaces } from "./dsl" - -const Slug = Schema.NonEmptyString.check(Schema.isPattern(/^[a-z0-9]+(?:-[a-z0-9]+)*$/)) -const CapturePath = Schema.String.check( - Schema.isPattern(/^captures\/[a-z0-9]+(?:-[a-z0-9]+)*\/[a-z0-9]+(?:-[a-z0-9]+)*\.frame\.json$/), -) -const PositiveInt = Schema.Int.check(Schema.isGreaterThan(0)) -const ScreenCategory = Schema.Literals(ScreenCategories) -const Surface = Schema.Literals(Surfaces) -const Pattern = Schema.Literals(Patterns) -const ScreenState = Schema.Literals(States) - -export const Variant = Schema.Struct({ - id: Slug, - label: Schema.NonEmptyString, - source: Schema.NonEmptyString, - revision: Schema.NonEmptyString, - ref: Schema.NonEmptyString, - committedAt: Schema.NonEmptyString, - theme: Schema.optionalKey(Schema.NonEmptyString), -}) - -export interface Variant extends Schema.Schema.Type {} - -export const Frame = Schema.Struct({ - variantId: Slug, - src: CapturePath, - cols: PositiveInt, - rows: PositiveInt, -}) - -export interface Frame extends Schema.Schema.Type {} - -export const DriveCapture = Schema.Struct({ - id: Slug, - title: Schema.NonEmptyString, - category: ScreenCategory, - frames: Schema.NonEmptyArray(Frame), -}) - -export interface DriveCapture extends Schema.Schema.Type {} - -export const DriveManifest = Schema.Struct({ - format: Schema.Literal("opencode-terminal-frame-captures-v1"), - generatedBy: Schema.NonEmptyString, - variants: Schema.NonEmptyArray(Variant), - captures: Schema.Array(DriveCapture), -}) - -export interface DriveManifest extends Schema.Schema.Type {} - -export const TaxonomyItem = Schema.Struct({ - id: Slug, - label: Schema.NonEmptyString, -}) - -export interface TaxonomyItem extends Schema.Schema.Type {} - -export const TaxonomyGroup = Schema.Struct({ - id: Slug, - label: Schema.NonEmptyString, - items: Schema.Array(TaxonomyItem), -}) - -export interface TaxonomyGroup extends Schema.Schema.Type {} - -export const FlowStep = Schema.Struct({ - screenId: Slug, - title: Schema.NonEmptyString, - trigger: Schema.optionalKey(Schema.NonEmptyString), - description: Schema.optionalKey(Schema.NonEmptyString), -}) - -export interface FlowStep extends Schema.Schema.Type {} - -export const Flow = Schema.Struct({ - id: Slug, - title: Schema.NonEmptyString, - group: Schema.NonEmptyString, - description: Schema.NonEmptyString, - replayable: Schema.Boolean, - steps: Schema.NonEmptyArray(FlowStep), -}) - -export interface Flow extends Schema.Schema.Type {} - -export const FrameArtifact = Schema.Struct({ - format: Schema.Literal("opencode-terminal-frame-v1"), - ...Frontend.CapturedFrame.fields, - cols: PositiveInt, - rows: PositiveInt, -}) - -export interface FrameArtifact extends Schema.Schema.Type {} - -export const Screen = Schema.Struct({ - id: Slug, - title: Schema.NonEmptyString, - category: ScreenCategory, - summary: Schema.String, - tags: Schema.Array(Schema.NonEmptyString), - screenLabels: Schema.Array(Schema.NonEmptyString), - uiElements: Schema.Array(Schema.NonEmptyString), - surfaces: Schema.Array(Surface), - patterns: Schema.Array(Pattern), - features: Schema.Array(Schema.NonEmptyString), - states: Schema.Array(ScreenState), - dimensions: Schema.Tuple([]), - viewport: Schema.Struct({ cols: PositiveInt, rows: PositiveInt }), - variations: Schema.Tuple([]), - frames: Schema.NonEmptyArray(Frame), -}) - -export interface Screen extends Schema.Schema.Type {} - -export const Catalog = Schema.Struct({ - format: Schema.Literal("opencode-terminal-catalog-v3"), - generatedBy: Schema.NonEmptyString, - variants: Schema.NonEmptyArray(Variant), - screenTaxonomy: Schema.Array(TaxonomyGroup), - uiElementTaxonomy: Schema.Array(TaxonomyGroup), - surfaces: Schema.Array(Surface), - patterns: Schema.Array(Pattern), - features: Schema.Array(Schema.NonEmptyString), - states: Schema.Array(ScreenState), - screens: Schema.Array(Screen), - flows: Schema.Array(Flow), -}) - -export interface Catalog extends Schema.Schema.Type {} - -export const CatalogIssue = Schema.Struct({ - path: Schema.NonEmptyString, - message: Schema.NonEmptyString, -}) - -export interface CatalogIssue extends Schema.Schema.Type {} - -export class CatalogBuildError extends Schema.TaggedErrorClass()("CatalogBuildError", { - issues: Schema.NonEmptyArray(CatalogIssue), -}) {} - -export class CatalogBoundaryError extends Schema.TaggedErrorClass()("CatalogBoundaryError", { - boundary: Schema.NonEmptyString, - cause: Schema.Defect(), -}) {} diff --git a/packages/lab/catalog/catalog/search-flows.test.ts b/packages/lab/catalog/catalog/search-flows.test.ts deleted file mode 100644 index 1a46b5e0a4d..00000000000 --- a/packages/lab/catalog/catalog/search-flows.test.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { describe, expect, test } from "bun:test" -import { searchLifecycleFlow } from "../scenarios/tools/search-lifecycle" -import { webLifecycleFlow } from "../scenarios/tools/web-lifecycle" - -describe("search and web executable flows", () => { - test("exports project search states in execution order", () => { - expect(searchLifecycleFlow.states.map((state) => state.address)).toEqual([ - "search-lifecycle/glob-success", - "search-lifecycle/glob-empty", - "search-lifecycle/grouped-exploration", - "search-lifecycle/grep-success", - "search-lifecycle/grep-empty", - "search-lifecycle/grep-failure", - ]) - }) - - test("exports renderer-specific web states", () => { - expect(webLifecycleFlow.states.map((state) => state.address)).toEqual([ - "web-lifecycle/webfetch-streaming", - "web-lifecycle/webfetch-success", - "web-lifecycle/websearch-running", - "web-lifecycle/websearch-failure", - ]) - }) -}) diff --git a/packages/lab/catalog/catalog/worker.test.ts b/packages/lab/catalog/catalog/worker.test.ts deleted file mode 100644 index ec90f71cd0f..00000000000 --- a/packages/lab/catalog/catalog/worker.test.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { describe, expect, test } from "bun:test" -import wrangler from "../wrangler.jsonc" -import { assetPath, metaTags } from "../worker" - -const catalog = { - variants: [ - { id: "opencode", label: "Opencode" }, - { id: "tokyonight", label: "Tokyo Night" }, - ], - screens: [ - { - id: "home", - title: "Home", - summary: "", - frames: [{ variantId: "opencode" }, { variantId: "tokyonight" }], - }, - ], -} - -describe("catalog worker", () => { - test("serves the app shell for catalog routes", () => { - expect(assetPath("/lab/catalog")).toBe("/index.html") - expect(assetPath("/lab/catalog/")).toBe("/index.html") - expect(assetPath("/lab/catalog/deep-link")).toBe("/index.html") - }) - - test("strips the catalog prefix from assets", () => { - expect(assetPath("/lab/catalog/catalog.json")).toBe("/catalog.json") - expect(assetPath("/lab/catalog/captures/opencode/home.frame.json")).toBe("/captures/opencode/home.frame.json") - }) - - test("leaves HTML routing to the worker", () => { - expect(wrangler.assets.html_handling).toBe("none") - }) - - test("injects a per-capture Open Graph card for deep links", () => { - const tags = metaTags(new URL("https://dev.opencode.ai/lab/catalog?screen=home&set=tokyonight"), catalog) - expect(tags).toContain('content="Home — OpenCode Terminal Catalog"') - expect(tags).toContain('content="https://dev.opencode.ai/lab/catalog/og/home--tokyonight.png"') - expect(tags).toContain("Tokyo Night theme") - expect(tags).toContain('name="twitter:card" content="summary_large_image"') - }) - - test("defaults the theme to the first variant", () => { - const tags = metaTags(new URL("https://dev.opencode.ai/lab/catalog?screen=home"), catalog) - expect(tags).toContain('content="https://dev.opencode.ai/lab/catalog/og/home--opencode.png"') - }) - - test("falls back to the default card for unknown or missing captures", () => { - for (const search of ["", "?screen=missing", "?screen=home&set=missing"]) { - const tags = metaTags(new URL(`https://dev.opencode.ai/lab/catalog${search}`), catalog) - expect(tags).toContain('content="https://dev.opencode.ai/lab/catalog/og/default.png"') - expect(tags).toContain('content="OpenCode Terminal Catalog"') - } - }) -}) diff --git a/packages/lab/catalog/compile/driver-consumer.ts b/packages/lab/catalog/compile/driver-consumer.ts deleted file mode 100644 index f90e34048c8..00000000000 --- a/packages/lab/catalog/compile/driver-consumer.ts +++ /dev/null @@ -1,22 +0,0 @@ -import * as Effect from "effect/Effect" -import type * as Scope from "effect/Scope" -import { OpenCodeDriver } from "opencode-drive" - -type Equal = - (() => Value extends Left ? 1 : 2) extends () => Value extends Right ? 1 : 2 ? true : false - -type Assert = Value - -type Managed = ReturnType -declare const managed: Managed -const scoped = Effect.scoped(managed) -type Scoped = typeof scoped - -export type ManagedRequiresScope = Assert, Scope.Scope>> -export type ScopedIsRunnable = Assert, never>> - -declare const driver: OpenCodeDriver.Driver -export type PrimaryUiIsCanonical = Assert> -export type AdditionalUiIsCanonical = Assert< - Equal>["ui"], OpenCodeDriver.Ui> -> diff --git a/packages/lab/catalog/doctor.config.json b/packages/lab/catalog/doctor.config.json deleted file mode 100644 index b742877ec41..00000000000 --- a/packages/lab/catalog/doctor.config.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "$schema": "https://react.doctor/schema/config.json", - "ignore": { - "files": [".tmp/**"] - } -} diff --git a/packages/lab/catalog/package.json b/packages/lab/catalog/package.json deleted file mode 100644 index c5d720129f1..00000000000 --- a/packages/lab/catalog/package.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "@opencode-ai/lab-catalog", - "private": true, - "type": "module", - "packageManager": "bun@1.3.14", - "scripts": { - "generate": "bun ./scripts/generate-catalog.ts", - "capture": "bun ./scripts/capture-opencode-drive.ts", - "reproduce": "bun ./scripts/reproduce-state.ts", - "dev": "bun ./server.ts", - "lint": "cd ../../.. && bun run lint -- packages/lab/catalog/src packages/lab/catalog/catalog packages/lab/catalog/scripts packages/lab/catalog/scenarios packages/lab/catalog/server.ts packages/lab/catalog/worker.ts", - "typecheck": "tsc --noEmit", - "build": "rm -rf dist && bun build ./src/index.html --outdir dist --public-path=/lab/catalog/ --minify && cp -R public/captures public/catalog.json public/drive-captures.json dist/ && bun ./scripts/generate-og.ts", - "deploy": "bun run generate && bun run build && bunx wrangler deploy", - "doctor": "bunx -y react-doctor@latest .", - "bench:capture-flow": "bun ./scripts/bench-capture-flow.ts", - "bench:capture-matrix": "bun ./scripts/bench-capture-matrix.ts", - "test": "bun test ./catalog", - "check": "bun run generate && git diff --exit-code -- public/catalog.json && bun run lint && bun run typecheck && bun run test && bun build ./src/index.html --outdir .tmp/build && bun build ./scripts/generate-catalog.ts --target=bun --outdir .tmp/scripts", - "drive:capture": "bun run capture" - }, - "dependencies": { - "@fontsource/commit-mono": "5.2.5", - "@fontsource/noto-sans-math": "5.2.8", - "@fontsource/noto-sans-symbols": "5.2.8", - "@fontsource/noto-sans-symbols-2": "5.2.8", - "react": "^19.2.7", - "react-dom": "^19.2.7" - }, - "devDependencies": { - "@napi-rs/canvas": "1.0.2", - "@types/bun": "catalog:", - "@types/react": "^19.2.17", - "@types/react-dom": "^19.2.3", - "effect": "catalog:", - "opencode-drive": "workspace:*", - "typescript": "^7.0.2", - "wrangler": "4.110.0" - } -} diff --git a/packages/lab/catalog/perf/capture-feedback.md b/packages/lab/catalog/perf/capture-feedback.md deleted file mode 100644 index 522545fecaa..00000000000 --- a/packages/lab/catalog/perf/capture-feedback.md +++ /dev/null @@ -1,74 +0,0 @@ -# Capture Feedback Performance - -## Goal - -Minimize edit-to-feedback latency for one catalog flow while preserving an isolated, reproducible full capture. - -## Benchmark - -```sh -bun run bench:capture-flow -``` - -The benchmark performs one warmup and seven measured runs of `search-lifecycle` against immutable OpenCode revision `5d5b33f195cc`. - -## Metrics - -- Primary: `capture_flow_total_median_ms` -- Secondary: preparation median, total MAD, best, and worst - -## Baseline - -Cold targeted capture before cache reuse: - -- Preparation: 24,261 ms -- Total: 48,642 ms - -The previous full-catalog-only workflow also replayed the baseline and every preceding flow before reporting a late failure, so it had no bounded per-flow feedback metric. - -## Hypotheses - -1. Reusing a revision-keyed immutable worktree removes repeated checkout and install cost. -2. Running all scenarios through one OpenCode process removes repeated server and TUI startup from full capture. -3. Staging frames outside `public` prevents failed experiments from contaminating authoritative artifacts. - -## Experiments - -### Revision-keyed worktree cache - -- Before: 48,642 ms cold targeted capture; 24,261 ms preparation -- After: 15,448 ms warm targeted median; 102 ms preparation median -- Spread: 4,077 ms MAD; 11,371 ms best; 22,619 ms worst -- Decision: keep - -The cache removes repeated checkout and dependency installation while retaining the exact resolved commit. `--fresh` remains available to deliberately rebuild the prepared checkout. - -### Registry-driven process reuse - -- Before: nine OpenCode server/TUI lifecycles for the baseline and eight lifecycle scenarios -- After: two lifecycles, grouped by the Drive controller's `queue` and `serve` response modes -- Full 60-state capture: 88,910 ms -- Scenario execution: approximately 40,100 ms; remaining time is baseline capture and two process lifecycles -- Decision: keep - -A single process cannot truthfully combine `queue` and dynamic `serve`: Drive deliberately locks each controller to one response mode. Grouping by declared scenario mode preserves that invariant while removing seven process launches. - -### Staged publication - -- Before: failed runs wrote partial and orphaned frames directly into `public/captures` -- After: full runs write to a unique staging tree and replace revision directories only after all scenarios pass -- Decision: keep for correctness; it does not target the latency metric - -### Registry-declared client isolation - -- Before: 150,825 ms with one fresh TUI client per scenario -- After: 142,652 ms with one shared client for reset-safe queue scenarios and isolated clients for assistant interruption and read permission -- Improvement: 5.4% -- Decision: keep - -The next pooling candidates require weakening explicit lifecycle guarantees for a small projected gain, so optimization stops here. - -## Dead Ends - -- Repeated full capture after each marker edit recreated and reinstalled the same revision. -- A manually prepared `/tmp` worktree reused Bun install metadata without creating complete local dependency links. diff --git a/packages/lab/catalog/perf/capture-matrix.md b/packages/lab/catalog/perf/capture-matrix.md deleted file mode 100644 index 461bfbdbfa0..00000000000 --- a/packages/lab/catalog/perf/capture-matrix.md +++ /dev/null @@ -1,31 +0,0 @@ -# Capture Matrix Performance - -## Goal - -Minimize authoritative three-theme capture wall time without sharing OpenCode driver state between themes or publishing partial results. - -## Benchmark - -```sh -bun run bench:capture-matrix -``` - -Primary metric: `capture_matrix_total_ms`. Correctness requires identical ordered screen coverage for Opencode, Tokyo Night, and Everforest before publication. - -## Baseline - -- Sequential three-theme capture: 465,542 ms -- Output: 65 screens per theme, 195 frames total - -## Experiment 1: Process-Isolated Theme Workers - -Hypothesis: theme captures can run concurrently when each owns a separate Bun process and `OpenCodeDriver` lifecycle. Earlier in-process concurrency was discarded because LLM and permission timing became nondeterministic. - -The coordinator now starts up to three theme workers, collects their staged outputs in requested order, and publishes only after every worker succeeds. A failed worker leaves the existing public manifest untouched. - -Final clean parallel run: 170,584 ms, a 2.73x speedup over the 465,509 ms sequential control. The first publication attempts exposed aggregation contract bugs; both were caught by generation validation and fixed before deployment. The final run captured and generated all 65 screens for each theme successfully. - -## Dead Ends - -- In-process variant concurrency: discarded after repeatable permission and LLM synchronization failures. -- Sharing one driver across scenarios: discarded because tool-result continuations leaked between scenario queues. diff --git a/packages/lab/catalog/public/captures/everforest/agent-picker.frame.json b/packages/lab/catalog/public/captures/everforest/agent-picker.frame.json deleted file mode 100644 index 1a69d7ad81f..00000000000 --- a/packages/lab/catalog/public/captures/everforest/agent-picker.frame.json +++ /dev/null @@ -1,680 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [69, 79, 53, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "New", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "session", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 86 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "Select agent", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 1, "width": 12 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 37 - }, - { "text": "esc", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "Search", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 50 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [167, 192, 128, 255], "attributes": 0, "width": 1 }, - { "text": "●", "fg": [45, 53, 59, 255], "bg": [167, 192, 128, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [167, 192, 128, 255], "attributes": 0, "width": 1 }, - { - "text": "build The default agent. Executes tools based on con", - "fg": [45, 53, 59, 255], - "bg": [167, 192, 128, 255], - "attributes": 1, - "width": 52 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [167, 192, 128, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "plan", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { - "text": " Read-only agent for exploring the codebase and ", - "fg": [122, 132, 120, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 48 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "reviewer", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 8 }, - { - "text": " Reviews deterministic UI fixtures", - "fg": [122, 132, 120, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 34 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Ask", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "anything...", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 11 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "\"Fix", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "a", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "TODO", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "in", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "the", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "codebase\"", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [52, 77, 74, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 38 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "╹", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [21, 26, 28, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { - "text": "/private/var/folde...-45e13804d277/files", - "fg": [50, 54, 49, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 40 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "agents", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "commands", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 111 - }, - { "text": "local", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [69, 79, 53, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "○", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 25, 28, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/assistant-response-failed.frame.json b/packages/lab/catalog/public/captures/everforest/assistant-response-failed.frame.json deleted file mode 100644 index 6a74cb6b790..00000000000 --- a/packages/lab/catalog/public/captures/everforest/assistant-response-failed.frame.json +++ /dev/null @@ -1,517 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [167, 192, 128, 255], "bg": [52, 63, 68, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [211, 198, 170, 255], "bg": [52, 63, 68, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Show a successful streaming assistant response.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 47 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 64 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": "This assistant response completes successfully.", - "fg": [211, 198, 170, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 47 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 66 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 78ms", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Show a failed assistant response.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 33 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 78 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": "This response starts but the simulated provider disconnects.", - "fg": [211, 198, 170, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 53 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": "Error: Decode error (200 POST https://api.openai.com/v1/chat/completions)", - "fg": [230, 126, 128, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 73 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 40 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": "Build · Simulated Model · 293ms", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 31 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [211, 198, 170, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [52, 63, 68, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...d16a-1997-4fcb-8dcd-f7806b4739af/files", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "⦿ UI", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/assistant-response-interrupted.frame.json b/packages/lab/catalog/public/captures/everforest/assistant-response-interrupted.frame.json deleted file mode 100644 index 930a3381012..00000000000 --- a/packages/lab/catalog/public/captures/everforest/assistant-response-interrupted.frame.json +++ /dev/null @@ -1,546 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [57, 67, 71, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [167, 192, 128, 255], "bg": [57, 67, 71, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [57, 67, 71, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [211, 198, 170, 255], "bg": [57, 67, 71, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [57, 67, 71, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Show a successful streaming assistant response.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 47 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 64 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": "This assistant response completes successfully.", - "fg": [211, 198, 170, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 47 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 66 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 78ms", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Show a failed assistant response.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 33 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 78 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": "This response starts but the simulated provider disconnects.", - "fg": [211, 198, 170, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 53 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": "Error: Decode error (200 POST https://api.openai.com/v1/chat/completions)", - "fg": [230, 126, 128, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 73 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 40 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": "Build · Simulated Model · 293ms", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 31 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Show an interrupted assistant response.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 39 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 72 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": "This response remains active until the user interrupts it.", - "fg": [211, 198, 170, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 58 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 55 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [211, 198, 170, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [52, 63, 68, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { "text": "■", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "⬝⬝⬝⬝⬝⬝⬝", "fg": [60, 77, 81, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "esc ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 4 }, - { "text": "interrupt", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 58 - }, - { "text": "shift+tab ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "⦿ UI", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/assistant-response-succeeded.frame.json b/packages/lab/catalog/public/captures/everforest/assistant-response-succeeded.frame.json deleted file mode 100644 index e780b5e5f8a..00000000000 --- a/packages/lab/catalog/public/captures/everforest/assistant-response-succeeded.frame.json +++ /dev/null @@ -1,476 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [59, 69, 73, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [167, 192, 128, 255], "bg": [59, 69, 73, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [59, 69, 73, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [211, 198, 170, 255], "bg": [59, 69, 73, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [59, 69, 73, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Show a successful streaming assistant response.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 47 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 64 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": "This assistant response completes successfully.", - "fg": [211, 198, 170, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 47 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 66 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 78ms", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [211, 198, 170, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [52, 63, 68, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...d16a-1997-4fcb-8dcd-f7806b4739af/files", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/command-palette.frame.json b/packages/lab/catalog/public/captures/everforest/command-palette.frame.json deleted file mode 100644 index 0e64e074286..00000000000 --- a/packages/lab/catalog/public/captures/everforest/command-palette.frame.json +++ /dev/null @@ -1,741 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [69, 79, 53, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "New", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "session", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 86 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "Commands", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 1, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 41 - }, - { "text": "esc", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "Search", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 50 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "Suggested", "fg": [214, 153, 182, 255], "bg": [51, 60, 67, 255], "attributes": 1, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 47 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [167, 192, 128, 255], "attributes": 0, "width": 3 }, - { "text": "Switch model", "fg": [45, 53, 59, 255], "bg": [167, 192, 128, 255], "attributes": 1, "width": 12 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [167, 192, 128, 255], - "attributes": 0, - "width": 32 - }, - { "text": "ctrl+x m", "fg": [45, 53, 59, 255], "bg": [167, 192, 128, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [167, 192, 128, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { - "text": "Connect an integration", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 22 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 34 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "Open settings", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 13 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 43 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Ask", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "Session", "fg": [214, 153, 182, 255], "bg": [51, 60, 67, 255], "attributes": 1, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 49 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "Switch session", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 30 - }, - { "text": "ctrl+x l", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Buil", "fg": [52, 77, 74, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "New session", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 33 - }, - { "text": "ctrl+x n", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "╹", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "▀▀▀▀▀▀", "fg": [21, 26, 28, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { - "text": "Open session or project", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 23 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 23 - }, - { "text": "ctrl+o", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "▀▀▀▀▀▀▀▀", "fg": [21, 26, 28, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "/privat", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "Close tab", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 35 - }, - { "text": "ctrl+x w", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "commands", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { - "text": "Reopen closed tab", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 17 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 23 - }, - { "text": "ctrl+shift+t", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 12 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 111 - }, - { "text": "local", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [69, 79, 53, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "○", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 25, 28, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/debug.frame.json b/packages/lab/catalog/public/captures/everforest/debug.frame.json deleted file mode 100644 index 612460ed460..00000000000 --- a/packages/lab/catalog/public/captures/everforest/debug.frame.json +++ /dev/null @@ -1,627 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [69, 79, 53, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "New", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "session", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 86 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Debug", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 1, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - }, - { "text": "esc", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Version ", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "local (local)", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 13 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 62 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Date ", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": "2026-08-12T19:26:35.902Z", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 24 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 51 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "OS ", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": "macOS 25.5.0 (arm64)", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 20 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 55 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Terminal ", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "ghostty 1.3.1", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 13 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 62 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Session ID", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "n/a", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 72 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Model ", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": "simulation/gpt-sim-model", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 24 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 51 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Share this when reporting an issue.", - "fg": [122, 132, 120, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 35 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 39 - }, - { "text": "copy", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 1, "width": 4 }, - { "text": " ", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "enter", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [52, 77, 74, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 38 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "╹", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [21, 26, 28, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { - "text": "/private/var/folde...-45e13804d277/files", - "fg": [50, 54, 49, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 40 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "agents", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "commands", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 111 - }, - { "text": "local", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [69, 79, 53, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "○", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 25, 28, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/diff-viewer.frame.json b/packages/lab/catalog/public/captures/everforest/diff-viewer.frame.json deleted file mode 100644 index 477908c9fa9..00000000000 --- a/packages/lab/catalog/public/captures/everforest/diff-viewer.frame.json +++ /dev/null @@ -1,460 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "Diff ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "working tree", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 12 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 93 - }, - { "text": "0 files", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 7 } - ] - }, - { - "spans": [ - { - "text": "────────────────────────────────────────────────────────────────────────────────", - "fg": [133, 146, 137, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 80 - }, - { "text": "┃", "fg": [131, 192, 146, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 34 - }, - { "text": "┃", "fg": [131, 192, 146, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "──", "fg": [133, 146, 137, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "No changes to show", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 61 - }, - { "text": "┃", "fg": [131, 192, 146, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { - "text": "Debug info copied to clipboard", - "fg": [211, 198, 170, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 30 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [131, 192, 146, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 80 - }, - { "text": "┃", "fg": [131, 192, 146, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 34 - }, - { "text": "┃", "fg": [131, 192, 146, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "tab ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 4 }, - { - "text": "focus file tree", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "n ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "next file", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "] ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "next hunk", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "[ ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "previous hunk", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "p ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "previous file", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "d ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "switch source", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "m ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "mark reviewed", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "? ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "all", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "⦿ UI", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/glob-empty.frame.json b/packages/lab/catalog/public/captures/everforest/glob-empty.frame.json deleted file mode 100644 index 19ebdd3af2d..00000000000 --- a/packages/lab/catalog/public/captures/everforest/glob-empty.frame.json +++ /dev/null @@ -1,530 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [62, 71, 74, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [167, 192, 128, 255], "bg": [62, 71, 74, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [62, 71, 74, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [211, 198, 170, 255], "bg": [62, 71, 74, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [62, 71, 74, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Find the TypeScript source files.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 33 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 78 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "Explored — 1 search", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 92 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": "The first glob search is complete.", - "fg": [211, 198, 170, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 34 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 79 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 659ms", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Find Rust files that do not exist.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 34 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "Explored — 1 search", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 92 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": "The empty glob search is complete.", - "fg": [211, 198, 170, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 34 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 79 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 146ms", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [211, 198, 170, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [52, 63, 68, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...3b2f-2b94-4593-a3bd-f3eedac32c25/files", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/glob-success.frame.json b/packages/lab/catalog/public/captures/everforest/glob-success.frame.json deleted file mode 100644 index 825f2c35cc7..00000000000 --- a/packages/lab/catalog/public/captures/everforest/glob-success.frame.json +++ /dev/null @@ -1,486 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [53, 64, 68, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [167, 192, 128, 255], "bg": [53, 64, 68, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [53, 64, 68, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [211, 198, 170, 255], "bg": [53, 64, 68, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [53, 64, 68, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Find the TypeScript source files.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 33 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 78 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "Explored — 1 search", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 92 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": "The first glob search is complete.", - "fg": [211, 198, 170, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 34 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 79 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 659ms", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [211, 198, 170, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [52, 63, 68, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...3b2f-2b94-4593-a3bd-f3eedac32c25/files", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/grep-empty.frame.json b/packages/lab/catalog/public/captures/everforest/grep-empty.frame.json deleted file mode 100644 index 3b9247b5fed..00000000000 --- a/packages/lab/catalog/public/captures/everforest/grep-empty.frame.json +++ /dev/null @@ -1,547 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [61, 71, 74, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [167, 192, 128, 255], "bg": [61, 71, 74, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [61, 71, 74, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [211, 198, 170, 255], "bg": [61, 71, 74, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [61, 71, 74, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": "The grouped exploration is complete.", - "fg": [211, 198, 170, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 36 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 77 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 735ms", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Search the source directory for credits.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 40 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 71 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "Explored — 1 search", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 92 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": "The matching grep search is complete.", - "fg": [211, 198, 170, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 37 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 76 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 102ms", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Search the source directory for DEADBEEF.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 41 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 70 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "Explored — 1 search", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 92 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": "The empty grep search is complete.", - "fg": [211, 198, 170, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 34 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 79 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 113ms", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [211, 198, 170, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [52, 63, 68, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...3b2f-2b94-4593-a3bd-f3eedac32c25/files", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "● UI", "fg": [230, 126, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/grep-failure.frame.json b/packages/lab/catalog/public/captures/everforest/grep-failure.frame.json deleted file mode 100644 index d3133b918d1..00000000000 --- a/packages/lab/catalog/public/captures/everforest/grep-failure.frame.json +++ /dev/null @@ -1,547 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [58, 68, 72, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [167, 192, 128, 255], "bg": [58, 68, 72, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [58, 68, 72, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [211, 198, 170, 255], "bg": [58, 68, 72, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [58, 68, 72, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": "The matching grep search is complete.", - "fg": [211, 198, 170, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 37 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 76 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 102ms", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Search the source directory for DEADBEEF.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 41 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 70 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "Explored — 1 search", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 92 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": "The empty grep search is complete.", - "fg": [211, 198, 170, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 34 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 79 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 113ms", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Run an invalid regular expression search.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 41 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 70 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "Explored — 1 search", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 92 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": "The invalid grep search is complete.", - "fg": [211, 198, 170, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 36 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 77 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 110ms", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [211, 198, 170, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [52, 63, 68, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...3b2f-2b94-4593-a3bd-f3eedac32c25/files", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "● UI", "fg": [230, 126, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/grep-success.frame.json b/packages/lab/catalog/public/captures/everforest/grep-success.frame.json deleted file mode 100644 index b9252fd5998..00000000000 --- a/packages/lab/catalog/public/captures/everforest/grep-success.frame.json +++ /dev/null @@ -1,547 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [55, 66, 70, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [167, 192, 128, 255], "bg": [55, 66, 70, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [55, 66, 70, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [211, 198, 170, 255], "bg": [55, 66, 70, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [55, 66, 70, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": "The empty glob search is complete.", - "fg": [211, 198, 170, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 34 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 79 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 146ms", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Explore TypeScript files and search them for credits together.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 62 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 49 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "Explored — 2 searches", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 21 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 90 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": "The grouped exploration is complete.", - "fg": [211, 198, 170, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 36 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 77 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 735ms", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Search the source directory for credits.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 40 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 71 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "Explored — 1 search", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 92 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": "The matching grep search is complete.", - "fg": [211, 198, 170, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 37 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 76 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 102ms", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [211, 198, 170, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [52, 63, 68, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...3b2f-2b94-4593-a3bd-f3eedac32c25/files", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "● UI", "fg": [230, 126, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/grouped-exploration.frame.json b/packages/lab/catalog/public/captures/everforest/grouped-exploration.frame.json deleted file mode 100644 index c2c3b59ee3c..00000000000 --- a/packages/lab/catalog/public/captures/everforest/grouped-exploration.frame.json +++ /dev/null @@ -1,547 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [68, 75, 79, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [167, 192, 128, 255], "bg": [68, 75, 79, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [68, 75, 79, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [211, 198, 170, 255], "bg": [68, 75, 79, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [68, 75, 79, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": "The first glob search is complete.", - "fg": [211, 198, 170, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 34 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 79 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 659ms", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Find Rust files that do not exist.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 34 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "Explored — 1 search", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 92 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": "The empty glob search is complete.", - "fg": [211, 198, 170, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 34 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 79 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 146ms", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Explore TypeScript files and search them for credits together.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 62 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 49 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "Explored — 2 searches", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 21 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 90 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": "The grouped exploration is complete.", - "fg": [211, 198, 170, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 36 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 77 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 735ms", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [211, 198, 170, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [52, 63, 68, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...3b2f-2b94-4593-a3bd-f3eedac32c25/files", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "● UI", "fg": [230, 126, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/help.frame.json b/packages/lab/catalog/public/captures/everforest/help.frame.json deleted file mode 100644 index 44a45c895aa..00000000000 --- a/packages/lab/catalog/public/captures/everforest/help.frame.json +++ /dev/null @@ -1,678 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [69, 79, 53, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "New", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "session", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 86 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Help", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 1, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 43 - }, - { "text": "esc/enter", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Press ctrl+p to see all available actions and commands ", - "fg": [122, 132, 120, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 55 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "in any context.", - "fg": [122, 132, 120, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 43 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 50 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [167, 192, 128, 255], "attributes": 0, "width": 3 }, - { "text": "ok", "fg": [45, 53, 59, 255], "bg": [167, 192, 128, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [167, 192, 128, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Ask", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "anything...", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 11 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "\"Fix", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "a", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "TODO", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "in", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "the", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "codebase\"", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [52, 77, 74, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 38 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "╹", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [21, 26, 28, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { - "text": "/private/var/folde...-45e13804d277/files", - "fg": [50, 54, 49, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 40 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "agents", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "commands", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 111 - }, - { "text": "local", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [69, 79, 53, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "○", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 25, 28, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/home.frame.json b/packages/lab/catalog/public/captures/everforest/home.frame.json deleted file mode 100644 index d7fd327adb6..00000000000 --- a/packages/lab/catalog/public/captures/everforest/home.frame.json +++ /dev/null @@ -1,616 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [167, 192, 128, 255], "bg": [52, 63, 68, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "New session", "fg": [211, 198, 170, 255], "bg": [52, 63, 68, 255], "attributes": 1, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 86 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 40 - }, - { - "text": " ", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 19 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ▄ ", - "fg": [211, 198, 170, 255], - "bg": [45, 53, 59, 255], - "attributes": 1, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 39 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 40 - }, - { - "text": "█▀▀█ █▀▀█ █▀▀█ █▀▀▄", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 19 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "█▀▀▀ █▀▀█ █▀▀█ █▀▀█", - "fg": [211, 198, 170, 255], - "bg": [45, 53, 59, 255], - "attributes": 1, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 39 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 40 - }, - { "text": "█", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [122, 132, 120, 255], "bg": [64, 73, 74, 255], "attributes": 0, "width": 2 }, - { "text": "█ █", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [122, 132, 120, 255], "bg": [64, 73, 74, 255], "attributes": 0, "width": 2 }, - { "text": "█ █", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { "text": "▀▀▀", "fg": [122, 132, 120, 255], "bg": [64, 73, 74, 255], "attributes": 0, "width": 3 }, - { "text": " █", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [122, 132, 120, 255], "bg": [64, 73, 74, 255], "attributes": 0, "width": 2 }, - { "text": "█", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "█", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [211, 198, 170, 255], "bg": [87, 89, 87, 255], "attributes": 1, "width": 3 }, - { "text": " █", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 1, "width": 2 }, - { "text": " ", "fg": [211, 198, 170, 255], "bg": [87, 89, 87, 255], "attributes": 1, "width": 2 }, - { "text": "█ █", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 1, "width": 3 }, - { "text": " ", "fg": [211, 198, 170, 255], "bg": [87, 89, 87, 255], "attributes": 1, "width": 2 }, - { "text": "█ █", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 1, "width": 3 }, - { "text": "▀▀▀", "fg": [211, 198, 170, 255], "bg": [87, 89, 87, 255], "attributes": 1, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 39 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 40 - }, - { - "text": "▀▀▀▀ █▀▀▀ ▀▀▀▀ ▀", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 16 - }, - { "text": "▀▀", "fg": [64, 73, 74, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "▀", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀ ▀▀▀▀ ▀▀▀▀ ▀▀▀▀", - "fg": [211, 198, 170, 255], - "bg": [45, 53, 59, 255], - "attributes": 1, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 39 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { - "text": "Ask anything... \"Fix a TODO in the codebase\"", - "fg": [122, 132, 120, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 44 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [211, 198, 170, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 38 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 22 - }, - { "text": "╹", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [52, 63, 68, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 22 - }, - { - "text": "/private/var/folde...-45e13804d277/files", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 40 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 111 - }, - { "text": "local", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/integration-picker.frame.json b/packages/lab/catalog/public/captures/everforest/integration-picker.frame.json deleted file mode 100644 index 305931d8c4a..00000000000 --- a/packages/lab/catalog/public/captures/everforest/integration-picker.frame.json +++ /dev/null @@ -1,729 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [69, 79, 53, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "New", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "session", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 86 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { - "text": "Connect an integration", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 1, - "width": 22 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 27 - }, - { "text": "esc", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "Search", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 50 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "Popular", "fg": [214, 153, 182, 255], "bg": [51, 60, 67, 255], "attributes": 1, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 49 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [167, 192, 128, 255], "attributes": 0, "width": 3 }, - { "text": "OpenCode", "fg": [45, 53, 59, 255], "bg": [167, 192, 128, 255], "attributes": 1, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [167, 192, 128, 255], - "attributes": 0, - "width": 47 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "openai", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 50 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "github-copilot", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 42 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Ask", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "Services", "fg": [214, 153, 182, 255], "bg": [51, 60, 67, 255], "attributes": 1, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 48 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "azure", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 51 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Buil", "fg": [52, 77, 74, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { - "text": "cloudflare-ai-gateway", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 21 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 35 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "╹", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "▀▀▀▀▀▀", "fg": [21, 26, 28, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { - "text": "cloudflare-workers-ai", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 21 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 35 - }, - { "text": "▀▀▀▀▀▀▀▀", "fg": [21, 26, 28, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "/privat", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "Exa", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 53 - }, - { "text": "commands", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "Firecrawl", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 47 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 111 - }, - { "text": "local", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [69, 79, 53, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "○", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 25, 28, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/mcp-list.frame.json b/packages/lab/catalog/public/captures/everforest/mcp-list.frame.json deleted file mode 100644 index 8c621f3fec6..00000000000 --- a/packages/lab/catalog/public/captures/everforest/mcp-list.frame.json +++ /dev/null @@ -1,676 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [69, 79, 53, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "New", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "session", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 86 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "MCP servers", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 1, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 38 - }, - { "text": "esc", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "Search", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 50 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { - "text": "No items available", - "fg": [122, 132, 120, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 38 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "connect space", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 13 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 43 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Ask", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "anything...", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 11 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "\"Fix", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "a", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "TODO", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "in", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "the", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "codebase\"", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [52, 77, 74, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 38 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "╹", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [21, 26, 28, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { - "text": "/private/var/folde...-45e13804d277/files", - "fg": [50, 54, 49, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 40 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "agents", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "commands", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 111 - }, - { "text": "local", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [69, 79, 53, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "○", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 25, 28, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/model-picker.frame.json b/packages/lab/catalog/public/captures/everforest/model-picker.frame.json deleted file mode 100644 index c3cdf888187..00000000000 --- a/packages/lab/catalog/public/captures/everforest/model-picker.frame.json +++ /dev/null @@ -1,687 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [69, 79, 53, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "New", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "session", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 86 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "Select model", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 1, "width": 12 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 37 - }, - { "text": "esc", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "Search", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 50 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [167, 192, 128, 255], "attributes": 0, "width": 1 }, - { "text": "●", "fg": [45, 53, 59, 255], "bg": [167, 192, 128, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [167, 192, 128, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [45, 53, 59, 255], - "bg": [167, 192, 128, 255], - "attributes": 1, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [167, 192, 128, 255], - "attributes": 0, - "width": 40 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { - "text": "View all integrations", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 21 - }, - { "text": " ctrl+a", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Ask", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "anything...", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 11 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "\"Fix", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "a", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "TODO", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "in", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "the", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "codebase\"", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [52, 77, 74, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 38 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "╹", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [21, 26, 28, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { - "text": "/private/var/folde...-45e13804d277/files", - "fg": [50, 54, 49, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 40 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "agents", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "commands", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 111 - }, - { "text": "local", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [69, 79, 53, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "○", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 25, 28, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/pair.frame.json b/packages/lab/catalog/public/captures/everforest/pair.frame.json deleted file mode 100644 index 5387c7219f9..00000000000 --- a/packages/lab/catalog/public/captures/everforest/pair.frame.json +++ /dev/null @@ -1,813 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [69, 79, 53, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "New", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "session", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 86 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Pair", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 1, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 77 - }, - { "text": "esc", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "This device", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 30 - }, - { - "text": "█▀▀▀▀▀▀▀███▀███▀█▀██▀▀▀█▀██▀████▀██▀▀▀▀▀▀▀█", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "http://localhost:60113", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 22 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 19 - }, - { - "text": "█ █▀▀▀█ █▄▄ ▄▄█▀▄██▄▀ ▀█▀▀▄█▄▀▄▀█▄█ █▀▀▀█ █", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 43 - }, - { - "text": "█ █ █ █▄▄ ▀ █▀ ▀█▄▄▀▀▀██▄▀▄▄▄▀▀ █ █ █ █", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "URLs", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 37 - }, - { - "text": "█ ▀▀▀▀▀ █ ▄ ▄ █▀█▀█ ▄▀▄ █▀█▀▄▀▄ █▀█ ▀▀▀▀▀ █", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "http://127.0.0.1:60113", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 22 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 19 - }, - { - "text": "█▀▀▀▀▀█▀▀▀▄███▀▀█▄▀▄ ▄▄ ▀█▀█▄ ▀ ▄▀▀█▀█▀█▀██", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 43 - }, - { - "text": "█████▄▄▀▄▄█▀▀▀ ▀▀█ ▄▄▄▀▄▄██▄▀█▀▀▄▀ ▄▄ █▄██", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Username", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 33 - }, - { - "text": "██▀ ▄█▄▀ █▄█▀█▄▀▄ ▄▄▄█ █▀▀ ████ ▄███▄ ▀███", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "opencode", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 33 - }, - { - "text": "█ ▀▄▄█▀▀▄▀▀██▄██ ▀█▄█▀▄█▄███ ▀▄█ ▀ ▀ █▄█", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 43 - }, - { - "text": "█▀▄███▄▀██ █ ▀ █▀█▀▄▄▀▄▄▀▄ ▀▀██▄█▄▄ █ ▄█", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Password", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 33 - }, - { - "text": "██▄▀███▀█▀▄▄▄ █▄▀██ ▄█▀▀▄▀ ▄▀▀▀▄▄▀█▄▀▄█▀███", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "************", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 12 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 29 - }, - { - "text": "█▄▀▀▄▄█▀ ▀█▄█▀█▄▀██▀ ▀ ▀▄ ▀▀ ▀▀ █▀▀▄▀ ▄█", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 43 - }, - { - "text": "█▄█▄ █▄▀▀▄█▄▀▀▀▄▄▄ █▄▄█▀▄██▄▀▀ █▄█▄▄ ▄██ ▄█", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Run `opencode service set ", - "fg": [122, 132, 120, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 15 - }, - { - "text": "█ ▀▀▀▄▄▀██▀ ▀▀ █▄▀▄▄▀▄▀ ▀▄▀ ▀ █▄█ ▄▀▀ █", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "hostname 0.0.0.0` to access ", - "fg": [122, 132, 120, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 28 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 13 }, - { - "text": "██▀█ ▀▀▀▀█▄▀▄▀ ▀▀ ▄▄█ ▀▄ █▄▀███▄██ ▄▄▄▄ ▄█", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "the service remotely.", - "fg": [122, 132, 120, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 21 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 20 - }, - { - "text": "█ ▄█▄ ▀ ▄▄▄▄▀ ▄▄▄█▄ ▀▀▀ █▄▀▀ ████▀ ▀ █", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 43 - }, - { - "text": "█ █▄█▀█▀█ ▀▀█▄▀█ ▀▀ ▄█ ▄██▀█ █▀█ ▄▄▄ ▄██▄█", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 43 - }, - { - "text": "█ █▀ █▀▀▄▀███▄▀ █▀█▀█▄ ▄▀▀▄▄█▀ ▀ █ ▄█", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 43 - }, - { - "text": "█▀▀▀▀▀▀▀█ █▄▄██▄▀▄█ ▄▀▄▀▄▄▀█▀█▀▄ █▀█ ▀▀▀▄█", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 43 - }, - { - "text": "█ █▀▀▀█ █▀▀█ ▀█▄ ▄█▀█ ▄▀▀▀█▀ █▀██ ▀▀▀ █▀ ▄█", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 43 - }, - { - "text": "█ █ █ █ ▄▀▀▀ ▄▄ █▄▀▀▀▄█▀█▀ ████▀▄▀▄██▄█", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 111 - }, - { "text": "local", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [69, 79, 53, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "○", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 25, 28, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/patch-created.frame.json b/packages/lab/catalog/public/captures/everforest/patch-created.frame.json deleted file mode 100644 index d866eb4fe2b..00000000000 --- a/packages/lab/catalog/public/captures/everforest/patch-created.frame.json +++ /dev/null @@ -1,498 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [61, 71, 74, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [168, 192, 129, 255], "bg": [57, 68, 71, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [55, 66, 70, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [211, 198, 170, 255], "bg": [55, 66, 70, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [55, 66, 70, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Create a file, update the fixture, delete the created file, then attempt an invalid patch.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 90 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 21 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "# Created", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-e99c412a-cd6f-4e30-9649-e0848a987eaf/files/patched.txt", - "fg": [122, 132, 120, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 101 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [160, 165, 167, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": " +", "fg": [184, 219, 135, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { - "text": "created by patch", - "fg": [211, 198, 170, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 16 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 89 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [211, 198, 170, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [52, 63, 68, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { "text": "⬝⬝", "fg": [94, 133, 131, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "■", "fg": [60, 77, 81, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [68, 90, 92, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [80, 110, 110, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [98, 140, 137, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [136, 199, 192, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "esc ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 4 }, - { "text": "interrupt", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 58 - }, - { "text": "shift+tab ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/patch-deleted.frame.json b/packages/lab/catalog/public/captures/everforest/patch-deleted.frame.json deleted file mode 100644 index b3c6c158e36..00000000000 --- a/packages/lab/catalog/public/captures/everforest/patch-deleted.frame.json +++ /dev/null @@ -1,558 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [64, 73, 76, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [168, 192, 129, 255], "bg": [60, 69, 73, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [57, 67, 71, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [211, 198, 170, 255], "bg": [57, 67, 71, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [57, 67, 71, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Create a file, update the fixture, delete the created file, then attempt an invalid patch.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 90 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 21 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "# Created", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-e99c412a-cd6f-4e30-9649-e0848a987eaf/files/patched.txt", - "fg": [122, 132, 120, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 101 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [160, 165, 167, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": " +", "fg": [184, 219, 135, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { - "text": "created by patch", - "fg": [211, 198, 170, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 16 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 89 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "← Patched", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-e99c412a-cd6f-4e30-9649-e0848a987eaf/files/fixture.txt", - "fg": [122, 132, 120, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 101 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [160, 165, 167, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": " -", "fg": [226, 106, 117, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [211, 198, 170, 255], "bg": [55, 34, 44, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [55, 34, 44, 255], - "attributes": 0, - "width": 99 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [160, 165, 167, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": " +", "fg": [184, 219, 135, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { - "text": "updated by patch", - "fg": [211, 198, 170, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 16 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 89 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "# Deleted", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-e99c412a-cd6f-4e30-9649-e0848a987eaf/files/patched.txt", - "fg": [122, 132, 120, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 101 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "-1 line", "fg": [197, 59, 83, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 104 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [211, 198, 170, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [52, 63, 68, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { "text": "⬝", "fg": [89, 126, 124, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [60, 77, 81, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [68, 90, 92, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [80, 110, 110, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [98, 140, 137, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [136, 199, 192, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "⬝", "fg": [89, 126, 124, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "esc ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 4 }, - { "text": "interrupt", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 58 - }, - { "text": "shift+tab ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "⦿ UI", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/patch-failed.frame.json b/packages/lab/catalog/public/captures/everforest/patch-failed.frame.json deleted file mode 100644 index a44b6d017fd..00000000000 --- a/packages/lab/catalog/public/captures/everforest/patch-failed.frame.json +++ /dev/null @@ -1,577 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [63, 73, 75, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [180, 184, 142, 255], "bg": [64, 74, 76, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [65, 74, 77, 255], "attributes": 0, "width": 1 }, - { "text": "O", "fg": [211, 198, 170, 255], "bg": [66, 75, 77, 255], "attributes": 1, "width": 1 }, - { "text": "p", "fg": [211, 198, 170, 255], "bg": [67, 75, 78, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [211, 198, 170, 255], "bg": [68, 76, 78, 255], "attributes": 1, "width": 1 }, - { "text": "n", "fg": [211, 198, 170, 255], "bg": [69, 77, 78, 255], "attributes": 1, "width": 1 }, - { "text": "C", "fg": [211, 198, 170, 255], "bg": [69, 77, 79, 255], "attributes": 1, "width": 1 }, - { "text": "o", "fg": [211, 198, 170, 255], "bg": [69, 78, 79, 255], "attributes": 1, "width": 1 }, - { "text": "de D", "fg": [211, 198, 170, 255], "bg": [70, 78, 79, 255], "attributes": 1, "width": 4 }, - { "text": "r", "fg": [211, 198, 170, 255], "bg": [69, 77, 78, 255], "attributes": 1, "width": 1 }, - { "text": "i", "fg": [211, 198, 170, 255], "bg": [65, 75, 77, 255], "attributes": 1, "width": 1 }, - { "text": "v", "fg": [211, 198, 170, 255], "bg": [62, 72, 74, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [211, 198, 170, 255], "bg": [61, 71, 74, 255], "attributes": 1, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [61, 71, 74, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [49, 58, 65, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [49, 58, 65, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "← Patched", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-e99c412a-cd6f-4e30-9649-e0848a987eaf/files/fixture.txt", - "fg": [122, 132, 120, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 101 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [160, 165, 167, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": " -", "fg": [226, 106, 117, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [211, 198, 170, 255], "bg": [55, 34, 44, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [55, 34, 44, 255], - "attributes": 0, - "width": 99 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [160, 165, 167, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": " +", "fg": [184, 219, 135, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { - "text": "updated by patch", - "fg": [211, 198, 170, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 16 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 89 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "# Deleted", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-e99c412a-cd6f-4e30-9649-e0848a987eaf/files/patched.txt", - "fg": [122, 132, 120, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 101 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "-1 line", "fg": [197, 59, 83, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 104 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "# Patch failed", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 14 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": "missing-patch.txt", - "fg": [122, 132, 120, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 17 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "patch verification failed: Failed to read file to update /private/var/folders/dd/", - "fg": [230, 126, 128, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 81 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 30 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "5fz89drs5p9_r0fk7rwqqnbr0000gn/T/opencode-drive/run-e99c412a-cd6f-4e30-9649-e0848a987eaf/files/missing-patch.", - "fg": [230, 126, 128, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 109 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "txt: file does not exist", - "fg": [230, 126, 128, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 24 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 87 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": "The patch file-change lifecycle is complete.", - "fg": [211, 198, 170, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 44 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 69 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 3.1s", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [211, 198, 170, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [52, 63, 68, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...412a-cd6f-4e30-9649-e0848a987eaf/files", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "⦿ UI", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/patch-input-streaming.frame.json b/packages/lab/catalog/public/captures/everforest/patch-input-streaming.frame.json deleted file mode 100644 index 81b652e712e..00000000000 --- a/packages/lab/catalog/public/captures/everforest/patch-input-streaming.frame.json +++ /dev/null @@ -1,481 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [65, 74, 76, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [168, 192, 129, 255], "bg": [62, 71, 74, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [60, 70, 73, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [211, 198, 170, 255], "bg": [60, 70, 73, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [60, 70, 73, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Change fixture.txt from before to after.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 40 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 71 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "⠸", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "Patching", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 101 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [211, 198, 170, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [52, 63, 68, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { "text": "⬝⬝", "fg": [94, 133, 131, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "■", "fg": [60, 77, 81, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [68, 90, 92, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [80, 110, 110, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [98, 140, 137, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [136, 199, 192, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "esc ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 4 }, - { "text": "interrupt", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 58 - }, - { "text": "shift+tab ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/patch-success.frame.json b/packages/lab/catalog/public/captures/everforest/patch-success.frame.json deleted file mode 100644 index c906a0b2d3e..00000000000 --- a/packages/lab/catalog/public/captures/everforest/patch-success.frame.json +++ /dev/null @@ -1,509 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [54, 65, 70, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [167, 192, 128, 255], "bg": [54, 65, 70, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [54, 65, 70, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [211, 198, 170, 255], "bg": [54, 65, 70, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [54, 65, 70, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Change fixture.txt from before to after.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 40 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 71 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "← Patched", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-c471e25f-6338-4d9f-ad75-45e13804d277/files/fixture.txt", - "fg": [122, 132, 120, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 101 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [160, 165, 167, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": " -", "fg": [226, 106, 117, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [211, 198, 170, 255], "bg": [55, 34, 44, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [55, 34, 44, 255], - "attributes": 0, - "width": 99 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [160, 165, 167, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": " +", "fg": [184, 219, 135, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "after", "fg": [211, 198, 170, 255], "bg": [32, 48, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 100 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": "The fixture was updated.", - "fg": [211, 198, 170, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 24 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 89 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 1.9s", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [211, 198, 170, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [52, 63, 68, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...e25f-6338-4d9f-ad75-45e13804d277/files", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/patch-updated.frame.json b/packages/lab/catalog/public/captures/everforest/patch-updated.frame.json deleted file mode 100644 index dd7e092ec0c..00000000000 --- a/packages/lab/catalog/public/captures/everforest/patch-updated.frame.json +++ /dev/null @@ -1,538 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [64, 73, 75, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [168, 192, 129, 255], "bg": [60, 70, 73, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [57, 68, 71, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [211, 198, 170, 255], "bg": [57, 68, 71, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [57, 68, 71, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Create a file, update the fixture, delete the created file, then attempt an invalid patch.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 90 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 21 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "# Created", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-e99c412a-cd6f-4e30-9649-e0848a987eaf/files/patched.txt", - "fg": [122, 132, 120, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 101 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [160, 165, 167, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": " +", "fg": [184, 219, 135, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { - "text": "created by patch", - "fg": [211, 198, 170, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 16 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 89 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "← Patched", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-e99c412a-cd6f-4e30-9649-e0848a987eaf/files/fixture.txt", - "fg": [122, 132, 120, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 101 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [160, 165, 167, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": " -", "fg": [226, 106, 117, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [211, 198, 170, 255], "bg": [55, 34, 44, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [55, 34, 44, 255], - "attributes": 0, - "width": 99 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [160, 165, 167, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": " +", "fg": [184, 219, 135, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { - "text": "updated by patch", - "fg": [211, 198, 170, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 16 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 89 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [211, 198, 170, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [52, 63, 68, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { "text": "⬝", "fg": [89, 126, 124, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [60, 77, 81, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [68, 90, 92, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [80, 110, 110, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [98, 140, 137, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [136, 199, 192, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "⬝", "fg": [89, 126, 124, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "esc ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 4 }, - { "text": "interrupt", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 58 - }, - { "text": "shift+tab ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "⦿ UI", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/permission-always-confirmation.frame.json b/packages/lab/catalog/public/captures/everforest/permission-always-confirmation.frame.json deleted file mode 100644 index d50d5b55f51..00000000000 --- a/packages/lab/catalog/public/captures/everforest/permission-always-confirmation.frame.json +++ /dev/null @@ -1,493 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [62, 72, 75, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [230, 152, 117, 255], "bg": [62, 72, 75, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [62, 72, 75, 255], "attributes": 0, "width": 1 }, - { "text": "OpenC", "fg": [211, 198, 170, 255], "bg": [62, 72, 75, 255], "attributes": 1, "width": 5 }, - { "text": "od", "fg": [211, 198, 170, 255], "bg": [63, 73, 75, 255], "attributes": 1, "width": 2 }, - { "text": "e", "fg": [211, 198, 170, 255], "bg": [64, 74, 75, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [211, 198, 170, 255], "bg": [65, 74, 76, 255], "attributes": 1, "width": 1 }, - { "text": "D", "fg": [211, 198, 170, 255], "bg": [66, 74, 76, 255], "attributes": 1, "width": 1 }, - { "text": "r", "fg": [211, 198, 170, 255], "bg": [67, 75, 77, 255], "attributes": 1, "width": 1 }, - { "text": "i", "fg": [211, 198, 170, 255], "bg": [68, 76, 78, 255], "attributes": 1, "width": 1 }, - { "text": "v", "fg": [211, 198, 170, 255], "bg": [69, 77, 78, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [211, 198, 170, 255], "bg": [69, 77, 79, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [69, 78, 79, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [70, 79, 80, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [71, 79, 80, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [70, 78, 80, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [67, 75, 77, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [63, 73, 75, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [62, 72, 75, 255], "attributes": 0, "width": 6 }, - { "text": " + ", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Change fixture.txt from before to after.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 40 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 71 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "⠙", "fg": [230, 152, 117, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "Patching", "fg": [230, 152, 117, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "fixture.txt", "fg": [230, 152, 117, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 89 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "△", "fg": [230, 152, 117, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "Always allow", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 12 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 97 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "This will allow edit until OpenCode is restarted.", - "fg": [122, 132, 120, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 49 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 62 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [167, 192, 128, 255], "attributes": 0, "width": 1 }, - { "text": "Confirm", "fg": [45, 53, 59, 255], "bg": [167, 192, 128, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [167, 192, 128, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "Cancel", "fg": [211, 198, 170, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 68 - }, - { "text": "⇆ ", "fg": [211, 198, 170, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "select", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "enter ", "fg": [211, 198, 170, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 6 }, - { "text": "confirm", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/permission-always-selected.frame.json b/packages/lab/catalog/public/captures/everforest/permission-always-selected.frame.json deleted file mode 100644 index 339c4bce0d0..00000000000 --- a/packages/lab/catalog/public/captures/everforest/permission-always-selected.frame.json +++ /dev/null @@ -1,543 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [62, 72, 74, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [230, 152, 117, 255], "bg": [62, 72, 74, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [62, 72, 74, 255], "attributes": 0, "width": 1 }, - { "text": "OpenC", "fg": [211, 198, 170, 255], "bg": [62, 72, 74, 255], "attributes": 1, "width": 5 }, - { "text": "o", "fg": [211, 198, 170, 255], "bg": [63, 72, 75, 255], "attributes": 1, "width": 1 }, - { "text": "d", "fg": [211, 198, 170, 255], "bg": [64, 72, 75, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [211, 198, 170, 255], "bg": [64, 73, 76, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [211, 198, 170, 255], "bg": [65, 74, 76, 255], "attributes": 1, "width": 1 }, - { "text": "D", "fg": [211, 198, 170, 255], "bg": [66, 75, 77, 255], "attributes": 1, "width": 1 }, - { "text": "r", "fg": [211, 198, 170, 255], "bg": [67, 76, 77, 255], "attributes": 1, "width": 1 }, - { "text": "i", "fg": [211, 198, 170, 255], "bg": [67, 76, 78, 255], "attributes": 1, "width": 1 }, - { "text": "v", "fg": [211, 198, 170, 255], "bg": [68, 77, 79, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [211, 198, 170, 255], "bg": [69, 78, 79, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [70, 78, 80, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [70, 79, 80, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [71, 79, 80, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [69, 77, 79, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [65, 74, 76, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [62, 72, 74, 255], "attributes": 0, "width": 7 }, - { "text": " + ", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Change fixture.txt from before to after.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 40 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 71 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "⠋", "fg": [230, 152, 117, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "Patching", "fg": [230, 152, 117, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "fixture.txt", "fg": [230, 152, 117, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 89 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "△", "fg": [230, 152, 117, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": "Permission required", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 90 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "→", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": "Edit private/var/folders/dd/5fz89drs5p9_r0fk7rwqqnbr0000gn/T/opencode-drive/run-c471e25f-6338-4d9f-ad75-", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 104 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 6 }, - { - "text": "45e13804d277/files/fixture.txt", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 30 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [160, 165, 167, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": " -", "fg": [226, 106, 117, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [211, 198, 170, 255], "bg": [55, 34, 44, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [55, 34, 44, 255], - "attributes": 0, - "width": 98 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [160, 165, 167, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": " +", "fg": [184, 219, 135, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "after", "fg": [211, 198, 170, 255], "bg": [32, 48, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 99 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 3 }, - { "text": "Allow once", "fg": [211, 198, 170, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [167, 192, 128, 255], "attributes": 0, "width": 1 }, - { "text": "Allow always", "fg": [45, 53, 59, 255], "bg": [167, 192, 128, 255], "attributes": 0, "width": 12 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [167, 192, 128, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "Reject", "fg": [211, 198, 170, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 31 - }, - { "text": "ctrl+f ", "fg": [211, 198, 170, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 7 }, - { "text": "fullscreen", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "⇆ ", "fg": [211, 198, 170, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "select", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "enter ", "fg": [211, 198, 170, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 6 }, - { "text": "confirm", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/permission-fullscreen.frame.json b/packages/lab/catalog/public/captures/everforest/permission-fullscreen.frame.json deleted file mode 100644 index b6b66f7e270..00000000000 --- a/packages/lab/catalog/public/captures/everforest/permission-fullscreen.frame.json +++ /dev/null @@ -1,558 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [61, 71, 74, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [230, 152, 117, 255], "bg": [61, 71, 74, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [61, 71, 74, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode D", "fg": [211, 198, 170, 255], "bg": [61, 71, 74, 255], "attributes": 1, "width": 10 }, - { "text": "r", "fg": [211, 198, 170, 255], "bg": [62, 71, 74, 255], "attributes": 1, "width": 1 }, - { "text": "iv", "fg": [211, 198, 170, 255], "bg": [62, 72, 75, 255], "attributes": 1, "width": 2 }, - { "text": "e", "fg": [211, 198, 170, 255], "bg": [63, 72, 75, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [63, 73, 75, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [64, 73, 76, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [64, 74, 76, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [65, 74, 76, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [65, 74, 77, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [64, 73, 76, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [62, 72, 75, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [61, 71, 74, 255], "attributes": 0, "width": 2 }, - { "text": " + ", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "△", "fg": [230, 152, 117, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": "Permission required", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 90 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "→", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": "Edit private/var/folders/dd/5fz89drs5p9_r0fk7rwqqnbr0000gn/T/opencode-drive/run-c471e25f-6338-4d9f-ad75-", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 104 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 6 }, - { - "text": "45e13804d277/files/fixture.txt", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 30 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [160, 165, 167, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": " -", "fg": [226, 106, 117, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [211, 198, 170, 255], "bg": [55, 34, 44, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [55, 34, 44, 255], - "attributes": 0, - "width": 98 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [160, 165, 167, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": " +", "fg": [184, 219, 135, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "after", "fg": [211, 198, 170, 255], "bg": [32, 48, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 99 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 3 }, - { "text": "Allow once", "fg": [211, 198, 170, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 3 }, - { "text": "Allow always", "fg": [211, 198, 170, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 12 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [167, 192, 128, 255], "attributes": 0, "width": 1 }, - { "text": "Reject", "fg": [45, 53, 59, 255], "bg": [167, 192, 128, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [167, 192, 128, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 32 - }, - { "text": "ctrl+f ", "fg": [211, 198, 170, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 7 }, - { "text": "minimize", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "⇆ ", "fg": [211, 198, 170, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "select", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "enter ", "fg": [211, 198, 170, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 6 }, - { "text": "confirm", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/permission-prompt.frame.json b/packages/lab/catalog/public/captures/everforest/permission-prompt.frame.json deleted file mode 100644 index ee48b166d0c..00000000000 --- a/packages/lab/catalog/public/captures/everforest/permission-prompt.frame.json +++ /dev/null @@ -1,543 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [61, 71, 74, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [230, 152, 117, 255], "bg": [61, 71, 74, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [61, 71, 74, 255], "attributes": 0, "width": 1 }, - { "text": "Open", "fg": [211, 198, 170, 255], "bg": [61, 71, 74, 255], "attributes": 1, "width": 4 }, - { "text": "C", "fg": [211, 198, 170, 255], "bg": [62, 71, 74, 255], "attributes": 1, "width": 1 }, - { "text": "o", "fg": [211, 198, 170, 255], "bg": [62, 72, 75, 255], "attributes": 1, "width": 1 }, - { "text": "d", "fg": [211, 198, 170, 255], "bg": [63, 72, 75, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [211, 198, 170, 255], "bg": [64, 72, 76, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [211, 198, 170, 255], "bg": [65, 73, 76, 255], "attributes": 1, "width": 1 }, - { "text": "D", "fg": [211, 198, 170, 255], "bg": [66, 74, 76, 255], "attributes": 1, "width": 1 }, - { "text": "r", "fg": [211, 198, 170, 255], "bg": [66, 75, 77, 255], "attributes": 1, "width": 1 }, - { "text": "i", "fg": [211, 198, 170, 255], "bg": [67, 76, 77, 255], "attributes": 1, "width": 1 }, - { "text": "v", "fg": [211, 198, 170, 255], "bg": [68, 76, 78, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [211, 198, 170, 255], "bg": [68, 77, 78, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [69, 78, 79, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [70, 78, 79, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [67, 76, 77, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [63, 72, 75, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [61, 71, 74, 255], "attributes": 0, "width": 7 }, - { "text": " + ", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Change fixture.txt from before to after.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 40 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 71 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "⠋", "fg": [230, 152, 117, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "Patching", "fg": [230, 152, 117, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "fixture.txt", "fg": [230, 152, 117, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 89 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "△", "fg": [230, 152, 117, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": "Permission required", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 90 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "→", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": "Edit private/var/folders/dd/5fz89drs5p9_r0fk7rwqqnbr0000gn/T/opencode-drive/run-c471e25f-6338-4d9f-ad75-", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 104 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 6 }, - { - "text": "45e13804d277/files/fixture.txt", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 30 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [160, 165, 167, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": " -", "fg": [226, 106, 117, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [211, 198, 170, 255], "bg": [55, 34, 44, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [55, 34, 44, 255], - "attributes": 0, - "width": 98 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [160, 165, 167, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": " +", "fg": [184, 219, 135, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "after", "fg": [211, 198, 170, 255], "bg": [32, 48, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 99 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [167, 192, 128, 255], "attributes": 0, "width": 1 }, - { "text": "Allow once", "fg": [45, 53, 59, 255], "bg": [167, 192, 128, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [167, 192, 128, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "Allow always", "fg": [211, 198, 170, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 12 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 3 }, - { "text": "Reject", "fg": [211, 198, 170, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 31 - }, - { "text": "ctrl+f ", "fg": [211, 198, 170, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 7 }, - { "text": "fullscreen", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "⇆ ", "fg": [211, 198, 170, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "select", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "enter ", "fg": [211, 198, 170, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 6 }, - { "text": "confirm", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/permission-reject-selected.frame.json b/packages/lab/catalog/public/captures/everforest/permission-reject-selected.frame.json deleted file mode 100644 index 1cf02abdef0..00000000000 --- a/packages/lab/catalog/public/captures/everforest/permission-reject-selected.frame.json +++ /dev/null @@ -1,542 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [62, 72, 75, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [230, 152, 117, 255], "bg": [62, 72, 75, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [62, 72, 75, 255], "attributes": 0, "width": 1 }, - { "text": "OpenC", "fg": [211, 198, 170, 255], "bg": [62, 72, 75, 255], "attributes": 1, "width": 5 }, - { "text": "o", "fg": [211, 198, 170, 255], "bg": [63, 72, 75, 255], "attributes": 1, "width": 1 }, - { "text": "d", "fg": [211, 198, 170, 255], "bg": [63, 73, 75, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [211, 198, 170, 255], "bg": [64, 73, 75, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [211, 198, 170, 255], "bg": [64, 74, 76, 255], "attributes": 1, "width": 1 }, - { "text": "D", "fg": [211, 198, 170, 255], "bg": [65, 74, 76, 255], "attributes": 1, "width": 1 }, - { "text": "r", "fg": [211, 198, 170, 255], "bg": [66, 75, 77, 255], "attributes": 1, "width": 1 }, - { "text": "i", "fg": [211, 198, 170, 255], "bg": [67, 75, 77, 255], "attributes": 1, "width": 1 }, - { "text": "v", "fg": [211, 198, 170, 255], "bg": [68, 76, 78, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [211, 198, 170, 255], "bg": [69, 77, 78, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [69, 78, 79, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [70, 79, 80, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [69, 77, 78, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [65, 74, 76, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [62, 72, 75, 255], "attributes": 0, "width": 6 }, - { "text": " + ", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Change fixture.txt from before to after.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 40 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 71 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "⠙", "fg": [230, 152, 117, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "Patching", "fg": [230, 152, 117, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "fixture.txt", "fg": [230, 152, 117, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 89 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "△", "fg": [230, 152, 117, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": "Permission required", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 90 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "→", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": "Edit private/var/folders/dd/5fz89drs5p9_r0fk7rwqqnbr0000gn/T/opencode-drive/run-c471e25f-6338-4d9f-ad75-", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 104 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 6 }, - { - "text": "45e13804d277/files/fixture.txt", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 30 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [160, 165, 167, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": " -", "fg": [226, 106, 117, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [211, 198, 170, 255], "bg": [55, 34, 44, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [55, 34, 44, 255], - "attributes": 0, - "width": 98 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [160, 165, 167, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": " +", "fg": [184, 219, 135, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "after", "fg": [211, 198, 170, 255], "bg": [32, 48, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 99 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 3 }, - { "text": "Allow once", "fg": [211, 198, 170, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 3 }, - { "text": "Allow always", "fg": [211, 198, 170, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 12 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [167, 192, 128, 255], "attributes": 0, "width": 1 }, - { "text": "Reject", "fg": [45, 53, 59, 255], "bg": [167, 192, 128, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [167, 192, 128, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 30 - }, - { "text": "ctrl+f ", "fg": [211, 198, 170, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 7 }, - { "text": "fullscreen", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "⇆ ", "fg": [211, 198, 170, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "select", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "enter ", "fg": [211, 198, 170, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 6 }, - { "text": "confirm", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/question-awaiting-form.frame.json b/packages/lab/catalog/public/captures/everforest/question-awaiting-form.frame.json deleted file mode 100644 index b77959d8e82..00000000000 --- a/packages/lab/catalog/public/captures/everforest/question-awaiting-form.frame.json +++ /dev/null @@ -1,539 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [62, 72, 75, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [230, 152, 117, 255], "bg": [62, 72, 75, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [62, 72, 75, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [211, 198, 170, 255], "bg": [62, 72, 75, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [62, 72, 75, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Ask me which runtime and validation mode to use.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 48 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 63 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "Asked 2 questions", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 17 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 94 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Questions", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 102 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Runtime", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": "Validation", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": "Confirm", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 81 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Which runtime should the catalog fixture use?", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 45 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 66 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "1.", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "Bun", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 105 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { - "text": "Use the repository's configured runtime.", - "fg": [122, 132, 120, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 40 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 68 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "2.", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "Node", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 104 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { - "text": "Use the Node.js compatibility runtime.", - "fg": [122, 132, 120, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 38 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 70 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "3.", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": "Type your own answer", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 20 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "⇆ ", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "tab", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "↑↓ ", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": "select", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "enter ", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 6 }, - { "text": "confirm", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "esc ", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "dismiss", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 67 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/question-denied.frame.json b/packages/lab/catalog/public/captures/everforest/question-denied.frame.json deleted file mode 100644 index 2e560d49eb8..00000000000 --- a/packages/lab/catalog/public/captures/everforest/question-denied.frame.json +++ /dev/null @@ -1,582 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [230, 152, 117, 255], "bg": [52, 63, 68, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [211, 198, 170, 255], "bg": [52, 63, 68, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [49, 58, 65, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [49, 58, 65, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Which runtime should the catalog fixture use?", - "fg": [122, 132, 120, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 45 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 66 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Bun", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 108 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Which validation should run?", - "fg": [122, 132, 120, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 83 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Focused", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 104 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": "The catalog answers were submitted.", - "fg": [211, 198, 170, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 35 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 78 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 6.7s", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Ask one more runtime question that I will dismiss.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 50 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 61 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "Asked 1 question", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 16 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 95 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Questions", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 102 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Which runtime should the catalog fixture use?", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 45 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 66 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "1.", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "Bun", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 105 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { - "text": "Use the repository's configured runtime.", - "fg": [122, 132, 120, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 40 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 68 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "2.", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "Node", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 104 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { - "text": "Use the Node.js compatibility runtime.", - "fg": [122, 132, 120, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 38 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 70 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "3.", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": "Type your own answer", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 20 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "↑↓ ", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": "select", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "enter ", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 6 }, - { "text": "submit", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "esc ", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "dismiss", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 75 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/question-input-streaming.frame.json b/packages/lab/catalog/public/captures/everforest/question-input-streaming.frame.json deleted file mode 100644 index e3b94e9e79f..00000000000 --- a/packages/lab/catalog/public/captures/everforest/question-input-streaming.frame.json +++ /dev/null @@ -1,478 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [65, 74, 76, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [168, 192, 129, 255], "bg": [61, 71, 74, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [60, 70, 73, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [211, 198, 170, 255], "bg": [60, 70, 73, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [60, 70, 73, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Ask me which runtime and validation mode to use.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 48 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 63 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "⠸", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "Asking questions...", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 92 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [211, 198, 170, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [52, 63, 68, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { "text": "⬝⬝", "fg": [94, 133, 131, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "■", "fg": [60, 77, 81, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [68, 90, 92, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [80, 110, 110, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [98, 140, 137, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [136, 199, 192, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "esc ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 4 }, - { "text": "interrupt", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 58 - }, - { "text": "shift+tab ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/question-prompt.frame.json b/packages/lab/catalog/public/captures/everforest/question-prompt.frame.json deleted file mode 100644 index fed466d067b..00000000000 --- a/packages/lab/catalog/public/captures/everforest/question-prompt.frame.json +++ /dev/null @@ -1,586 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [62, 72, 75, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [230, 152, 117, 255], "bg": [62, 72, 75, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [62, 72, 75, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [211, 198, 170, 255], "bg": [62, 72, 75, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [62, 72, 75, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "← Patched", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-c471e25f-6338-4d9f-ad75-45e13804d277/files/fixture.txt", - "fg": [122, 132, 120, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 101 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [160, 165, 167, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": " -", "fg": [226, 106, 117, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [211, 198, 170, 255], "bg": [55, 34, 44, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [55, 34, 44, 255], - "attributes": 0, - "width": 99 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [160, 165, 167, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": " +", "fg": [184, 219, 135, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "after", "fg": [211, 198, 170, 255], "bg": [32, 48, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 100 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": "The fixture was updated.", - "fg": [211, 198, 170, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 24 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 89 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 1.9s", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Ask me about the fixture direction.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 35 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "Asked 1 question", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 16 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 95 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Questions", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 102 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Which direction should the fixture take?", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 40 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 71 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "1.", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": "Keep it minimal (Recommended)", - "fg": [167, 192, 128, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { - "text": "Small deterministic fixture", - "fg": [122, 132, 120, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 27 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 81 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "2.", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": "Expand coverage", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 93 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { - "text": "Add more scripted states", - "fg": [122, 132, 120, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 24 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 84 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "3.", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": "Type your own answer", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 20 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "↑↓ ", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": "select", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "enter ", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 6 }, - { "text": "submit", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "esc ", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "dismiss", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 75 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "⦿ UI", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/question-review.frame.json b/packages/lab/catalog/public/captures/everforest/question-review.frame.json deleted file mode 100644 index 1317cf8ab09..00000000000 --- a/packages/lab/catalog/public/captures/everforest/question-review.frame.json +++ /dev/null @@ -1,498 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [62, 72, 75, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [230, 152, 117, 255], "bg": [62, 72, 75, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [62, 72, 75, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [211, 198, 170, 255], "bg": [62, 72, 75, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [62, 72, 75, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Ask me which runtime and validation mode to use.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 48 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 63 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "Asked 2 questions", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 17 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 94 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Questions", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 102 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Runtime", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": "Validation", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": "Confirm", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 81 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Review", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 105 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Runtime:", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "Bun", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 99 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Validation:", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "Focused", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 92 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "⇆ ", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "tab", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "↑↓ ", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": "scroll", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "enter ", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 6 }, - { "text": "submit", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "esc ", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "dismiss", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 68 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/question-succeeded.frame.json b/packages/lab/catalog/public/captures/everforest/question-succeeded.frame.json deleted file mode 100644 index ee13b309d73..00000000000 --- a/packages/lab/catalog/public/captures/everforest/question-succeeded.frame.json +++ /dev/null @@ -1,525 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [61, 70, 73, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [167, 192, 128, 255], "bg": [61, 70, 73, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [61, 70, 73, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [211, 198, 170, 255], "bg": [61, 70, 73, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [61, 70, 73, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Ask me which runtime and validation mode to use.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 48 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 63 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "# Questions", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 100 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Which runtime should the catalog fixture use?", - "fg": [122, 132, 120, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 45 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 66 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Bun", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 108 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Which validation should run?", - "fg": [122, 132, 120, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 83 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Focused", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 104 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": "The catalog answers were submitted.", - "fg": [211, 198, 170, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 35 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 78 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 6.7s", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [211, 198, 170, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [52, 63, 68, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...8af6-01b9-4a6f-9954-e29745cc69aa/files", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/read-denied.frame.json b/packages/lab/catalog/public/captures/everforest/read-denied.frame.json deleted file mode 100644 index 3f7c137ccc2..00000000000 --- a/packages/lab/catalog/public/captures/everforest/read-denied.frame.json +++ /dev/null @@ -1,575 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [62, 71, 74, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [230, 152, 117, 255], "bg": [62, 71, 74, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [62, 71, 74, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [211, 198, 170, 255], "bg": [62, 71, 74, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [62, 71, 74, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [101, 110, 103, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "Explored", "fg": [101, 110, 103, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "—", "fg": [101, 110, 103, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [101, 110, 103, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "read", "fg": [101, 110, 103, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 94 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": "The fixture read succeeded.", - "fg": [211, 198, 170, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 27 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 86 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 604ms", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Now try to read a missing file.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 31 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 80 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "Explored — 1 read", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 17 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 94 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": "The missing-file read failed as expected.", - "fg": [211, 198, 170, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 41 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 72 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 151ms", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Now read the ledger file.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 86 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "⠋", "fg": [230, 152, 117, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "Read src/ledger.ts", - "fg": [230, 152, 117, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 93 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "△", "fg": [230, 152, 117, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": "Permission required", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 90 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "→", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": "Read src/ledger.ts", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 89 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Path: src/ledger.ts", - "fg": [122, 132, 120, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 92 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [167, 192, 128, 255], "attributes": 0, "width": 1 }, - { "text": "Allow once", "fg": [45, 53, 59, 255], "bg": [167, 192, 128, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [167, 192, 128, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "Allow always", "fg": [211, 198, 170, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 12 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 3 }, - { "text": "Reject", "fg": [211, 198, 170, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 31 - }, - { "text": "ctrl+f ", "fg": [211, 198, 170, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 7 }, - { "text": "fullscreen", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "⇆ ", "fg": [211, 198, 170, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "select", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "enter ", "fg": [211, 198, 170, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 6 }, - { "text": "confirm", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/read-input-streaming.frame.json b/packages/lab/catalog/public/captures/everforest/read-input-streaming.frame.json deleted file mode 100644 index d324e4b936d..00000000000 --- a/packages/lab/catalog/public/captures/everforest/read-input-streaming.frame.json +++ /dev/null @@ -1,478 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [62, 72, 74, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [167, 192, 128, 255], "bg": [62, 72, 74, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [62, 72, 74, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [211, 198, 170, 255], "bg": [62, 72, 74, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [62, 72, 74, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Read the fixture file.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 22 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 89 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "⠹", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "Exploring — 1 read", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 93 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [211, 198, 170, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [52, 63, 68, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { "text": "■", "fg": [60, 77, 81, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [68, 90, 92, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [80, 110, 110, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [98, 140, 137, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [136, 199, 192, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "⬝⬝", "fg": [84, 117, 116, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "esc ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 4 }, - { "text": "interrupt", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 58 - }, - { "text": "shift+tab ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/read-permission.frame.json b/packages/lab/catalog/public/captures/everforest/read-permission.frame.json deleted file mode 100644 index 5e1c09dd160..00000000000 --- a/packages/lab/catalog/public/captures/everforest/read-permission.frame.json +++ /dev/null @@ -1,505 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [67, 75, 77, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [230, 152, 117, 255], "bg": [65, 74, 76, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [61, 71, 74, 255], "attributes": 0, "width": 1 }, - { "text": "O", "fg": [211, 198, 170, 255], "bg": [58, 69, 72, 255], "attributes": 1, "width": 1 }, - { "text": "penCode Drive", "fg": [211, 198, 170, 255], "bg": [57, 68, 72, 255], "attributes": 1, "width": 13 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [57, 68, 72, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Read the fixture file.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 22 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 89 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "⠋", "fg": [230, 152, 117, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "Read fixture.txt", - "fg": [230, 152, 117, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 16 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 95 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "△", "fg": [230, 152, 117, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": "Permission required", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 90 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "→", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": "Read fixture.txt", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 16 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 91 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Path: fixture.txt", - "fg": [122, 132, 120, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 17 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 94 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [167, 192, 128, 255], "attributes": 0, "width": 1 }, - { "text": "Allow once", "fg": [45, 53, 59, 255], "bg": [167, 192, 128, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [167, 192, 128, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "Allow always", "fg": [211, 198, 170, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 12 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 3 }, - { "text": "Reject", "fg": [211, 198, 170, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 31 - }, - { "text": "ctrl+f ", "fg": [211, 198, 170, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 7 }, - { "text": "fullscreen", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "⇆ ", "fg": [211, 198, 170, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "select", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "enter ", "fg": [211, 198, 170, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 6 }, - { "text": "confirm", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/read-succeeded.frame.json b/packages/lab/catalog/public/captures/everforest/read-succeeded.frame.json deleted file mode 100644 index 04815fa1b1e..00000000000 --- a/packages/lab/catalog/public/captures/everforest/read-succeeded.frame.json +++ /dev/null @@ -1,486 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [53, 64, 69, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [167, 192, 128, 255], "bg": [53, 64, 69, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [53, 64, 69, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [211, 198, 170, 255], "bg": [53, 64, 69, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [53, 64, 69, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Read the fixture file.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 22 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 89 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "Explored — 1 read", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 17 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 94 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": "The fixture read succeeded.", - "fg": [211, 198, 170, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 27 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 86 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 604ms", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [211, 198, 170, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [52, 63, 68, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...d8f1-35a2-4ee5-8b7d-3a4920c0bc28/files", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/session-export.frame.json b/packages/lab/catalog/public/captures/everforest/session-export.frame.json deleted file mode 100644 index b517aa75e33..00000000000 --- a/packages/lab/catalog/public/captures/everforest/session-export.frame.json +++ /dev/null @@ -1,647 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [69, 79, 53, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Drive", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 84 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 25, 28, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Change", "fg": [87, 82, 70, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "fixture.txt", "fg": [87, 82, 70, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 11 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "from", "fg": [87, 82, 70, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [87, 82, 70, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "to", "fg": [87, 82, 70, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "after.", "fg": [87, 82, 70, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 25, 28, 255], - "attributes": 0, - "width": 71 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 25, 28, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [19, 22, 24, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 25, 28, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [19, 22, 24, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "←", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Patched", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-c471e25f-6338-4d9f-ad75-45e13804d277/files/fixture.txt", - "fg": [50, 54, 49, 255], - "bg": [21, 25, 28, 255], - "attributes": 0, - "width": 101 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [19, 22, 24, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 25, 28, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [19, 22, 24, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [66, 68, 69, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": "-", "fg": [93, 44, 48, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [87, 82, 70, 255], "bg": [23, 14, 18, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [23, 14, 18, 255], "attributes": 0, "width": 12 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [23, 14, 18, 255], - "attributes": 0, - "width": 27 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [19, 22, 24, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [66, 68, 69, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [76, 90, 56, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": "after", "fg": [87, 82, 70, 255], "bg": [13, 20, 24, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [13, 20, 24, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Export session", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 39 - }, - { "text": "esc", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [13, 20, 24, 255], - "attributes": 0, - "width": 27 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [19, 22, 24, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 25, 28, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 25, 28, 255], - "attributes": 0, - "width": 27 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Export as:", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "◉ Markdown", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": "○ JSON", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 27 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 5 }, - { "text": "The", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "fixture", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "was", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "updated.", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "[x]", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": "Include thinking", - "fg": [167, 192, 128, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 16 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 38 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 31 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 4 }, - { "text": "Copy", "fg": [211, 198, 170, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": "Export", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [52, 77, 74, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [21, 26, 28, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...e25f-6338-4d9f-ad75-45e13804d277/files", - "fg": [50, 54, 49, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "agents", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "commands", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [69, 79, 53, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "○", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 25, 28, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/session-fork.frame.json b/packages/lab/catalog/public/captures/everforest/session-fork.frame.json deleted file mode 100644 index 35ec70d88dc..00000000000 --- a/packages/lab/catalog/public/captures/everforest/session-fork.frame.json +++ /dev/null @@ -1,574 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [69, 79, 53, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Drive", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 84 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 25, 28, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Change", "fg": [87, 82, 70, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "fixture.txt", "fg": [87, 82, 70, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 11 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "from", "fg": [87, 82, 70, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [87, 82, 70, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "to", "fg": [87, 82, 70, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "after.", "fg": [87, 82, 70, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 25, 28, 255], - "attributes": 0, - "width": 71 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 25, 28, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [19, 22, 24, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 25, 28, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [19, 22, 24, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "←", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Patched", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-c471e25f-6338-4d9f-ad75-45e13804d277/files/fixture.txt", - "fg": [50, 54, 49, 255], - "bg": [21, 25, 28, 255], - "attributes": 0, - "width": 101 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [19, 22, 24, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 25, 28, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [19, 22, 24, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [66, 68, 69, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": "-", "fg": [93, 44, 48, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": "befo", "fg": [87, 82, 70, 255], "bg": [23, 14, 18, 255], "attributes": 0, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [23, 14, 18, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [19, 22, 24, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [66, 68, 69, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [76, 90, 56, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": "afte", "fg": [87, 82, 70, 255], "bg": [13, 20, 24, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "Fork session", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 1, "width": 12 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 65 - }, - { "text": "esc", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [13, 20, 24, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [19, 22, 24, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 12 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "Search", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 78 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 5 }, - { "text": "The", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "fixtur", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [167, 192, 128, 255], "attributes": 0, "width": 1 }, - { "text": "●", "fg": [45, 53, 59, 255], "bg": [167, 192, 128, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [167, 192, 128, 255], "attributes": 0, "width": 1 }, - { "text": "Full session", "fg": [45, 53, 59, 255], "bg": [167, 192, 128, 255], "attributes": 1, "width": 12 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [167, 192, 128, 255], - "attributes": 0, - "width": 71 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "Si", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { - "text": "Change fixture.txt from before to after.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 40 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 33 - }, - { "text": "3:26 PM", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [52, 77, 74, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [21, 26, 28, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...e25f-6338-4d9f-ad75-45e13804d277/files", - "fg": [50, 54, 49, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "agents", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "commands", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [69, 79, 53, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "○", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 25, 28, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/session-picker-populated.frame.json b/packages/lab/catalog/public/captures/everforest/session-picker-populated.frame.json deleted file mode 100644 index ed7c8e78aed..00000000000 --- a/packages/lab/catalog/public/captures/everforest/session-picker-populated.frame.json +++ /dev/null @@ -1,620 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [69, 79, 53, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "DriveCatalog", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 12 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "cap", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 3 }, - { "text": "t", "fg": [74, 70, 62, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 1 }, - { "text": "u", "fg": [58, 57, 51, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 1 }, - { "text": "r", "fg": [42, 44, 42, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [27, 30, 31, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 84 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [19, 22, 24, 255], "bg": [20, 24, 27, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 24, 27, 255], "attributes": 0, "width": 2 }, - { "text": "←", "fg": [42, 45, 42, 255], "bg": [20, 24, 27, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 24, 27, 255], "attributes": 0, "width": 1 }, - { "text": "Patched", "fg": [42, 45, 42, 255], "bg": [20, 24, 27, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 24, 27, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-c471e25f-6338-4d9f-ad75-45e13804d277/files/fixture.txt", - "fg": [42, 45, 42, 255], - "bg": [20, 24, 27, 255], - "attributes": 0, - "width": 101 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [19, 22, 24, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 25, 28, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [19, 22, 24, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [66, 68, 69, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": "-", "fg": [93, 44, 48, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [87, 82, 70, 255], "bg": [23, 14, 18, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [23, 14, 18, 255], - "attributes": 0, - "width": 99 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [19, 22, 24, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [66, 68, 69, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [76, 90, 56, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": "after", "fg": [87, 82, 70, 255], "bg": [13, 20, 24, 255], "attributes": 0, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [13, 20, 24, 255], - "attributes": 0, - "width": 100 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [19, 22, 24, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 25, 28, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 5 }, - { "text": "The", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "fixture", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "was", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "updated.", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 89 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "Si", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "Sessions", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 1, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 69 - }, - { "text": "esc", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 12 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Ask", "fg": [87, 82, 70, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "me", "fg": [87, 82, 70, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "abo", "fg": [87, 82, 70, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "Search", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 78 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 12 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "Today", "fg": [214, 153, 182, 255], "bg": [51, 60, 67, 255], "attributes": 1, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [19, 22, 24, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 12 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [167, 192, 128, 255], "attributes": 0, "width": 1 }, - { "text": "●", "fg": [45, 53, 59, 255], "bg": [167, 192, 128, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [167, 192, 128, 255], "attributes": 0, "width": 1 }, - { - "text": "OpenCode DriveCatalog capture session", - "fg": [45, 53, 59, 255], - "bg": [167, 192, 128, 255], - "attributes": 1, - "width": 37 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [167, 192, 128, 255], - "attributes": 0, - "width": 46 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [19, 22, 24, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "#", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Question", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [19, 22, 24, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 12 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "delete", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 6 }, - { "text": " ctrl+d", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "rename", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 6 }, - { "text": " ctrl+r", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 35 - }, - { "text": "all projects", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 1, "width": 12 }, - { "text": " ", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "ctrl+a", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [19, 22, 24, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Which", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "dire", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [19, 22, 24, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Keep", "fg": [87, 82, 70, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "it", "fg": [87, 82, 70, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "minimal", "fg": [87, 82, 70, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "(Recommended)", "fg": [87, 82, 70, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 13 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 25, 28, 255], - "attributes": 0, - "width": 82 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [19, 22, 24, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 25, 28, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 5 }, - { "text": "Keeping", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "the", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "fixture", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "minimal.", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 85 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "216ms", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [52, 77, 74, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [21, 26, 28, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...e25f-6338-4d9f-ad75-45e13804d277/files", - "fg": [50, 54, 49, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "agents", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "commands", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [69, 79, 53, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "⦿", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 25, 28, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/session-picker.frame.json b/packages/lab/catalog/public/captures/everforest/session-picker.frame.json deleted file mode 100644 index 6fe0669f04a..00000000000 --- a/packages/lab/catalog/public/captures/everforest/session-picker.frame.json +++ /dev/null @@ -1,628 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [69, 79, 53, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "New", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "session", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 86 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "Sessions", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 1, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 69 - }, - { "text": "esc", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "Search", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 78 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { - "text": "No sessions available", - "fg": [122, 132, 120, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 21 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 63 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "delete ctrl+d", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "rename ctrl+r", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 13 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 35 - }, - { "text": "all projects", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 1, "width": 12 }, - { "text": " ", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "ctrl+a", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Ask", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "anything...", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 11 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "\"Fix", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "a", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "TODO", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "in", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "the", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "codebase\"", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [52, 77, 74, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 38 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "╹", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [21, 26, 28, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { - "text": "/private/var/folde...-45e13804d277/files", - "fg": [50, 54, 49, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 40 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "agents", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "commands", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 111 - }, - { "text": "local", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [69, 79, 53, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "○", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 25, 28, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/session-rename.frame.json b/packages/lab/catalog/public/captures/everforest/session-rename.frame.json deleted file mode 100644 index 7c4bca4c3b8..00000000000 --- a/packages/lab/catalog/public/captures/everforest/session-rename.frame.json +++ /dev/null @@ -1,602 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [22, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [69, 79, 53, 255], "bg": [22, 26, 28, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [22, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode", "fg": [87, 82, 70, 255], "bg": [22, 26, 28, 255], "attributes": 1, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [22, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Drive", "fg": [87, 82, 70, 255], "bg": [22, 26, 28, 255], "attributes": 1, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [22, 26, 28, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 84 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 25, 28, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Change", "fg": [87, 82, 70, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "fixture.txt", "fg": [87, 82, 70, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 11 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "from", "fg": [87, 82, 70, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [87, 82, 70, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "to", "fg": [87, 82, 70, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "after.", "fg": [87, 82, 70, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 25, 28, 255], - "attributes": 0, - "width": 71 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 25, 28, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [19, 22, 24, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 25, 28, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [19, 22, 24, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "←", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Patched", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-c471e25f-6338-4d9f-ad75-45e13804d277/files/fixture.txt", - "fg": [50, 54, 49, 255], - "bg": [21, 25, 28, 255], - "attributes": 0, - "width": 101 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [19, 22, 24, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 25, 28, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [19, 22, 24, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [66, 68, 69, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": "-", "fg": [93, 44, 48, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [87, 82, 70, 255], "bg": [23, 14, 18, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [23, 14, 18, 255], "attributes": 0, "width": 12 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [23, 14, 18, 255], - "attributes": 0, - "width": 27 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [19, 22, 24, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [66, 68, 69, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [76, 90, 56, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": "after", "fg": [87, 82, 70, 255], "bg": [13, 20, 24, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [13, 20, 24, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Rename session", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 39 - }, - { "text": "esc", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [13, 20, 24, 255], - "attributes": 0, - "width": 27 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [19, 22, 24, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 25, 28, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 25, 28, 255], - "attributes": 0, - "width": 27 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "OpenCode Drive", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 44 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 5 }, - { "text": "The", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "fixture", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "was", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "updated.", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "enter ", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 6 }, - { "text": "submit", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 46 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [52, 77, 74, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [21, 26, 28, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...e25f-6338-4d9f-ad75-45e13804d277/files", - "fg": [50, 54, 49, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "agents", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "commands", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [69, 79, 53, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "○", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 25, 28, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/session-tabs-idle.frame.json b/packages/lab/catalog/public/captures/everforest/session-tabs-idle.frame.json deleted file mode 100644 index b207ebe3159..00000000000 --- a/packages/lab/catalog/public/captures/everforest/session-tabs-idle.frame.json +++ /dev/null @@ -1,481 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [70, 79, 80, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [188, 181, 151, 255], "bg": [71, 79, 80, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [71, 79, 80, 255], "attributes": 0, "width": 1 }, - { "text": "Op", "fg": [211, 198, 170, 255], "bg": [71, 79, 80, 255], "attributes": 1, "width": 2 }, - { "text": "e", "fg": [211, 198, 170, 255], "bg": [69, 78, 79, 255], "attributes": 1, "width": 1 }, - { "text": "n", "fg": [211, 198, 170, 255], "bg": [66, 74, 76, 255], "attributes": 1, "width": 1 }, - { "text": "Code Drive", "fg": [211, 198, 170, 255], "bg": [62, 72, 75, 255], "attributes": 1, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [62, 72, 75, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [63, 73, 75, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [64, 73, 75, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [65, 74, 76, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [66, 74, 77, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [67, 75, 77, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [68, 76, 78, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [68, 77, 78, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [69, 78, 79, 255], "attributes": 0, "width": 1 }, - { "text": " + ", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Audit the current tab state.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 83 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": "Working on a tab audit.Tab audit complete.", - "fg": [211, 198, 170, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 42 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 71 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 2.1s", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [211, 198, 170, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [52, 63, 68, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...6791-5962-41f3-a342-e9aa6450e7c8/files", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "⦿ UI", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/session-tabs-running.frame.json b/packages/lab/catalog/public/captures/everforest/session-tabs-running.frame.json deleted file mode 100644 index 41620ff9dc2..00000000000 --- a/packages/lab/catalog/public/captures/everforest/session-tabs-running.frame.json +++ /dev/null @@ -1,472 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [54, 65, 69, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [167, 192, 128, 255], "bg": [54, 65, 69, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [54, 65, 69, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [211, 198, 170, 255], "bg": [54, 65, 69, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [54, 65, 69, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Audit the current tab state.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 83 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": "Working on a tab audit.", - "fg": [211, 198, 170, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 23 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 90 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [211, 198, 170, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [52, 63, 68, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { "text": "■", "fg": [136, 199, 192, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "⬝⬝⬝⬝⬝⬝", "fg": [65, 85, 88, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "esc ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 4 }, - { "text": "interrupt", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 58 - }, - { "text": "shift+tab ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/shell-execute-failed.frame.json b/packages/lab/catalog/public/captures/everforest/shell-execute-failed.frame.json deleted file mode 100644 index ab7b24dc7cc..00000000000 --- a/packages/lab/catalog/public/captures/everforest/shell-execute-failed.frame.json +++ /dev/null @@ -1,556 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [62, 71, 74, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [167, 192, 128, 255], "bg": [61, 70, 74, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [61, 70, 74, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Dr", "fg": [211, 198, 170, 255], "bg": [61, 70, 74, 255], "attributes": 1, "width": 11 }, - { "text": "iv", "fg": [211, 198, 170, 255], "bg": [62, 71, 74, 255], "attributes": 1, "width": 2 }, - { "text": "e", "fg": [211, 198, 170, 255], "bg": [62, 72, 74, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [63, 73, 75, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [64, 74, 76, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [65, 74, 76, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [66, 75, 77, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [67, 76, 78, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [68, 77, 78, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [69, 77, 79, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [69, 78, 79, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [70, 78, 79, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [68, 77, 78, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [64, 73, 76, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [62, 70, 74, 255], "attributes": 0, "width": 1 }, - { "text": " + ", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "+", "fg": [156, 112, 94, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "Thought · 1.4s", "fg": [156, 112, 94, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 97 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "$", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": "printf catalog-shell-success", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 81 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Tool result declared output without an output schema", - "fg": [230, 126, 128, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 52 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 59 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": "The successful shell command completed.", - "fg": [211, 198, 170, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 39 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 74 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 3.0s", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Now run one failing foreground shell command.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 45 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 66 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "⠇", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": "catalog-shell-fail", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 91 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": "The shell lifecycle is complete.", - "fg": [211, 198, 170, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 32 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 81 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 1.6s", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [211, 198, 170, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [52, 63, 68, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...df42-0409-406d-933a-07fb0ca4a1d8/files", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "⦿ UI", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/shell-execute-succeeded.frame.json b/packages/lab/catalog/public/captures/everforest/shell-execute-succeeded.frame.json deleted file mode 100644 index b1a03fbc66b..00000000000 --- a/packages/lab/catalog/public/captures/everforest/shell-execute-succeeded.frame.json +++ /dev/null @@ -1,520 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [55, 66, 70, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [167, 192, 128, 255], "bg": [55, 66, 70, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [55, 66, 70, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode D", "fg": [211, 198, 170, 255], "bg": [55, 66, 70, 255], "attributes": 1, "width": 10 }, - { "text": "r", "fg": [211, 198, 170, 255], "bg": [56, 67, 71, 255], "attributes": 1, "width": 1 }, - { "text": "i", "fg": [211, 198, 170, 255], "bg": [57, 67, 71, 255], "attributes": 1, "width": 1 }, - { "text": "v", "fg": [211, 198, 170, 255], "bg": [57, 68, 72, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [211, 198, 170, 255], "bg": [58, 69, 72, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [59, 70, 73, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [60, 71, 73, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [61, 71, 74, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [62, 72, 75, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [63, 73, 75, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [64, 74, 76, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [65, 74, 76, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [63, 73, 75, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [58, 69, 72, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [55, 66, 70, 255], "attributes": 0, "width": 2 }, - { "text": " + ", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Run one successful foreground shell command.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 44 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 67 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "+", "fg": [156, 112, 94, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "Thought · 1.4s", "fg": [156, 112, 94, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 97 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "$", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": "printf catalog-shell-success", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 81 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Tool result declared output without an output schema", - "fg": [230, 126, 128, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 52 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 59 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": "The successful shell command completed.", - "fg": [211, 198, 170, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 39 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 74 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 3.0s", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [211, 198, 170, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [52, 63, 68, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...df42-0409-406d-933a-07fb0ca4a1d8/files", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "⦿ UI", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/shell-input-streaming.frame.json b/packages/lab/catalog/public/captures/everforest/shell-input-streaming.frame.json deleted file mode 100644 index 0bd6343f58c..00000000000 --- a/packages/lab/catalog/public/captures/everforest/shell-input-streaming.frame.json +++ /dev/null @@ -1,489 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [63, 72, 75, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [173, 193, 134, 255], "bg": [63, 72, 75, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [63, 73, 75, 255], "attributes": 0, "width": 1 }, - { "text": "O", "fg": [211, 198, 170, 255], "bg": [63, 73, 75, 255], "attributes": 1, "width": 1 }, - { "text": "p", "fg": [211, 198, 170, 255], "bg": [63, 72, 75, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [211, 198, 170, 255], "bg": [60, 70, 73, 255], "attributes": 1, "width": 1 }, - { "text": "n", "fg": [211, 198, 170, 255], "bg": [56, 66, 70, 255], "attributes": 1, "width": 1 }, - { "text": "Code Drive", "fg": [211, 198, 170, 255], "bg": [54, 64, 69, 255], "attributes": 1, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [54, 64, 69, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Run one successful foreground shell command.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 44 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 67 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "+", "fg": [156, 112, 94, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "Thought", "fg": [156, 112, 94, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 104 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "⠋", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": "Writing command...", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 91 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [211, 198, 170, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [52, 63, 68, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { "text": "⬝⬝⬝⬝⬝⬝⬝⬝", "fg": [71, 96, 98, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "esc ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 4 }, - { "text": "interrupt", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 58 - }, - { "text": "shift+tab ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/shell-output-streaming.frame.json b/packages/lab/catalog/public/captures/everforest/shell-output-streaming.frame.json deleted file mode 100644 index 8299d61ffba..00000000000 --- a/packages/lab/catalog/public/captures/everforest/shell-output-streaming.frame.json +++ /dev/null @@ -1,495 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [167, 192, 128, 255], "bg": [52, 63, 68, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCo", "fg": [211, 198, 170, 255], "bg": [52, 63, 68, 255], "attributes": 1, "width": 6 }, - { "text": "d", "fg": [211, 198, 170, 255], "bg": [53, 64, 68, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [211, 198, 170, 255], "bg": [53, 64, 69, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [211, 198, 170, 255], "bg": [54, 65, 69, 255], "attributes": 1, "width": 1 }, - { "text": "D", "fg": [211, 198, 170, 255], "bg": [55, 65, 70, 255], "attributes": 1, "width": 1 }, - { "text": "r", "fg": [211, 198, 170, 255], "bg": [56, 66, 70, 255], "attributes": 1, "width": 1 }, - { "text": "i", "fg": [211, 198, 170, 255], "bg": [57, 67, 71, 255], "attributes": 1, "width": 1 }, - { "text": "v", "fg": [211, 198, 170, 255], "bg": [58, 68, 72, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [211, 198, 170, 255], "bg": [59, 69, 72, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [60, 70, 73, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [61, 70, 73, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [61, 71, 74, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [62, 71, 74, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [62, 72, 74, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [62, 71, 74, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [58, 68, 72, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [54, 65, 69, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 5 }, - { "text": " + ", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Run one successful foreground shell command.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 44 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 67 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "+", "fg": [156, 112, 94, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "Thought · 1.4s", "fg": [156, 112, 94, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 97 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "⠋", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": "printf catalog-shell-success", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 81 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [211, 198, 170, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [52, 63, 68, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { "text": "⬝⬝⬝⬝⬝⬝⬝⬝", "fg": [83, 114, 114, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "esc ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 4 }, - { "text": "interrupt", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 58 - }, - { "text": "shift+tab ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/skill-picker.frame.json b/packages/lab/catalog/public/captures/everforest/skill-picker.frame.json deleted file mode 100644 index 9d3e3e8c8be..00000000000 --- a/packages/lab/catalog/public/captures/everforest/skill-picker.frame.json +++ /dev/null @@ -1,619 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [69, 79, 53, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "New", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "session", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 86 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "Skills", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 1, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 71 - }, - { "text": "esc", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "Search", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 78 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [167, 192, 128, 255], "attributes": 0, "width": 3 }, - { - "text": "OpenCode Use this skill for any question about OpenCode itself, including how Op", - "fg": [45, 53, 59, 255], - "bg": [167, 192, 128, 255], - "attributes": 1, - "width": 80 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [167, 192, 128, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "Report ", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 8 }, - { - "text": " Use when the user wants to report an opencode issue or bug. Collect sta", - "fg": [122, 132, 120, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 72 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Ask", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "anything...", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 11 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "\"Fix", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "a", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "TODO", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "in", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "the", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "codebase\"", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [52, 77, 74, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 38 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "╹", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [21, 26, 28, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { - "text": "/private/var/folde...-45e13804d277/files", - "fg": [50, 54, 49, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 40 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "agents", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "commands", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 111 - }, - { "text": "local", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [69, 79, 53, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "○", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 25, 28, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/status.frame.json b/packages/lab/catalog/public/captures/everforest/status.frame.json deleted file mode 100644 index 228f79935a0..00000000000 --- a/packages/lab/catalog/public/captures/everforest/status.frame.json +++ /dev/null @@ -1,669 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [69, 79, 53, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "New", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "session", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 86 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Status", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 1, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 47 - }, - { "text": "esc", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "No MCP servers", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 44 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 40 - }, - { "text": "█", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "█", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "█", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "█", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "█", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "▀▀▀", "fg": [50, 54, 49, 255], "bg": [26, 30, 30, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "█", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "█", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "█", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [36, 37, 36, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "█", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [36, 37, 36, 255], "attributes": 0, "width": 2 }, - { "text": "█", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "█", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [36, 37, 36, 255], "attributes": 0, "width": 2 }, - { "text": "█", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "█", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 1, "width": 1 }, - { "text": "▀▀▀", "fg": [87, 82, 70, 255], "bg": [36, 37, 36, 255], "attributes": 1, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 39 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 40 - }, - { "text": "▀▀▀▀", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "█▀▀▀", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "▀▀▀▀", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "▀", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "▀▀", "fg": [26, 30, 30, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "▀", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "▀▀▀▀", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 1, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "▀▀▀▀", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 1, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "▀▀▀▀", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 1, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "▀▀▀▀", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 1, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 39 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Ask", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "anything...", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 11 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "\"Fix", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "a", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "TODO", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "in", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "the", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "codebase\"", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [52, 77, 74, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 38 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "╹", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [21, 26, 28, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { - "text": "/private/var/folde...-45e13804d277/files", - "fg": [50, 54, 49, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 40 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "agents", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "commands", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 111 - }, - { "text": "local", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [69, 79, 53, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "○", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 25, 28, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/subagent-completed.frame.json b/packages/lab/catalog/public/captures/everforest/subagent-completed.frame.json deleted file mode 100644 index 9d29c89385d..00000000000 --- a/packages/lab/catalog/public/captures/everforest/subagent-completed.frame.json +++ /dev/null @@ -1,494 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [63, 72, 75, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [167, 192, 128, 255], "bg": [59, 69, 73, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [58, 68, 72, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Driv", "fg": [211, 198, 170, 255], "bg": [58, 68, 72, 255], "attributes": 1, "width": 13 }, - { "text": "e", "fg": [211, 198, 170, 255], "bg": [59, 69, 73, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [60, 69, 73, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [60, 70, 74, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [61, 71, 74, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [62, 72, 75, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [63, 73, 75, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [64, 74, 76, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [65, 75, 76, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [66, 76, 77, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [67, 76, 77, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [65, 75, 76, 255], "attributes": 0, "width": 1 }, - { "text": " + ", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Use a subagent to inspect src/ledger.ts and calculate the total.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 64 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 47 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "+", "fg": [156, 112, 94, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "Thought · 36ms", "fg": [156, 112, 94, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 97 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "✓", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "Researcher Subagent — Inspect ledger lifecycle", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 46 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 65 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": "Subagent completed the ledger lifecycle.", - "fg": [211, 198, 170, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 40 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 73 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 1.7s", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [211, 198, 170, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [52, 63, 68, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...d8b4-5a7a-42b9-9894-29a3b13227bd/files", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "⦿ UI", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/subagent-running.frame.json b/packages/lab/catalog/public/captures/everforest/subagent-running.frame.json deleted file mode 100644 index e2e218e1ab1..00000000000 --- a/packages/lab/catalog/public/captures/everforest/subagent-running.frame.json +++ /dev/null @@ -1,478 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [60, 70, 73, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [167, 192, 128, 255], "bg": [60, 70, 73, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [60, 70, 73, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [211, 198, 170, 255], "bg": [60, 70, 73, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [60, 70, 73, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Use a subagent to inspect src/ledger.ts and calculate the total.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 64 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 47 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "+", "fg": [156, 112, 94, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "Thought · 36ms", "fg": [156, 112, 94, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 97 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "⠋", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "Researcher Subagent — Inspect ledger lifecycle", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 46 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 65 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [211, 198, 170, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [52, 63, 68, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { "text": "■", "fg": [136, 199, 192, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "⬝⬝⬝⬝⬝⬝", "fg": [65, 85, 88, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "esc ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 4 }, - { "text": "interrupt", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 58 - }, - { "text": "shift+tab ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/subagent-session.frame.json b/packages/lab/catalog/public/captures/everforest/subagent-session.frame.json deleted file mode 100644 index 3a7574383f0..00000000000 --- a/packages/lab/catalog/public/captures/everforest/subagent-session.frame.json +++ /dev/null @@ -1,507 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [65, 73, 76, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [170, 192, 131, 255], "bg": [65, 73, 76, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [65, 73, 76, 255], "attributes": 0, "width": 1 }, - { "text": "O", "fg": [211, 198, 170, 255], "bg": [65, 73, 76, 255], "attributes": 1, "width": 1 }, - { "text": "p", "fg": [211, 198, 170, 255], "bg": [63, 72, 75, 255], "attributes": 1, "width": 1 }, - { "text": "enCode Drive", "fg": [211, 198, 170, 255], "bg": [61, 71, 74, 255], "attributes": 1, "width": 12 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [61, 71, 74, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [62, 72, 75, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [63, 72, 75, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [63, 72, 76, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [64, 72, 76, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [64, 73, 76, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [65, 73, 76, 255], "attributes": 0, "width": 1 }, - { "text": " + ", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [214, 153, 182, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [214, 153, 182, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "You are a subagent spawned by another session.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 46 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 65 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [214, 153, 182, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Read src/ledger.ts and report its exports, values, and calculated total.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 72 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 39 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [214, 153, 182, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": "The child inspected src/ledger.ts and calculated total 42.", - "fg": [211, 198, 170, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 58 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 55 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "Researcher", "fg": [214, 153, 182, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 10 }, - { - "text": " · Simulated Model · 1.5s", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 78 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [133, 146, 137, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [133, 146, 137, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Subagents", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 1, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Shell", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 90 - }, - { "text": "esc", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [133, 146, 137, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [133, 146, 137, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " No active subagents", - "fg": [122, 132, 120, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 20 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 92 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [133, 146, 137, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [133, 146, 137, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [133, 146, 137, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [133, 146, 137, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [133, 146, 137, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [133, 146, 137, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "show inactive", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 1, "width": 13 }, - { "text": " ", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "ctrl+a", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "tabs", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 1, "width": 4 }, - { "text": " ", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "←/→", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 81 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [133, 146, 137, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "⦿ UI", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/theme-picker.frame.json b/packages/lab/catalog/public/captures/everforest/theme-picker.frame.json deleted file mode 100644 index 1b0dda296d8..00000000000 --- a/packages/lab/catalog/public/captures/everforest/theme-picker.frame.json +++ /dev/null @@ -1,727 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [69, 79, 53, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "New", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "session", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 86 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "Themes", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 1, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 43 - }, - { "text": "esc", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "Search", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 50 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { - "text": "catppuccin-frappe", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 17 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 39 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { - "text": "catppuccin-macchiato", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 20 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 36 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "cobalt2", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 49 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "cursor", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 50 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "dracula", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 49 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Ask", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [167, 192, 128, 255], "attributes": 0, "width": 1 }, - { "text": "●", "fg": [45, 53, 59, 255], "bg": [167, 192, 128, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [167, 192, 128, 255], "attributes": 0, "width": 1 }, - { "text": "everforest", "fg": [45, 53, 59, 255], "bg": [167, 192, 128, 255], "attributes": 1, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [167, 192, 128, 255], - "attributes": 0, - "width": 45 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "flexoki", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 49 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Buil", "fg": [52, 77, 74, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "github", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 50 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "╹", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "▀▀▀▀▀▀", "fg": [21, 26, 28, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "gruvbox", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 49 - }, - { "text": "▀▀▀▀▀▀▀▀", "fg": [21, 26, 28, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 22 - }, - { "text": "/privat", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "kanagawa", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 48 - }, - { "text": "commands", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": "lucent-orng", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 45 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 111 - }, - { "text": "local", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [69, 79, 53, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "○", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 25, 28, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/thinking-streaming.frame.json b/packages/lab/catalog/public/captures/everforest/thinking-streaming.frame.json deleted file mode 100644 index 7e56219e059..00000000000 --- a/packages/lab/catalog/public/captures/everforest/thinking-streaming.frame.json +++ /dev/null @@ -1,469 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [62, 72, 75, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [167, 192, 128, 255], "bg": [62, 72, 75, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [62, 72, 75, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [211, 198, 170, 255], "bg": [62, 72, 75, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [62, 72, 75, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Run one successful foreground shell command.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 44 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 67 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "⠙", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "Thinking", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 103 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [211, 198, 170, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [52, 63, 68, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { "text": "■", "fg": [98, 140, 137, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [136, 199, 192, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "⬝⬝⬝⬝⬝", "fg": [70, 93, 95, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "esc ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 4 }, - { "text": "interrupt", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 58 - }, - { "text": "shift+tab ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/toast-error.frame.json b/packages/lab/catalog/public/captures/everforest/toast-error.frame.json deleted file mode 100644 index 380e5a9c1ed..00000000000 --- a/packages/lab/catalog/public/captures/everforest/toast-error.frame.json +++ /dev/null @@ -1,593 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [167, 192, 128, 255], "bg": [52, 63, 68, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { - "text": "OpenCode DriveCatalog cap", - "fg": [211, 198, 170, 255], - "bg": [52, 63, 68, 255], - "attributes": 1, - "width": 25 - }, - { "text": "t", "fg": [179, 171, 150, 255], "bg": [52, 63, 68, 255], "attributes": 1, "width": 1 }, - { "text": "u", "fg": [141, 139, 125, 255], "bg": [52, 63, 68, 255], "attributes": 1, "width": 1 }, - { "text": "r", "fg": [103, 106, 101, 255], "bg": [52, 63, 68, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [65, 74, 76, 255], "bg": [52, 63, 68, 255], "attributes": 1, "width": 1 }, - { "text": " + ", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [49, 58, 65, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [49, 58, 65, 255], "attributes": 0, "width": 2 }, - { "text": "←", "fg": [101, 110, 103, 255], "bg": [49, 58, 65, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [49, 58, 65, 255], "attributes": 0, "width": 1 }, - { "text": "Patched", "fg": [101, 110, 103, 255], "bg": [49, 58, 65, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [49, 58, 65, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-c4", - "fg": [101, 110, 103, 255], - "bg": [49, 58, 65, 255], - "attributes": 0, - "width": 49 - }, - { "text": "┃", "fg": [230, 126, 128, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 50 - }, - { "text": "┃", "fg": [230, 126, 128, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 61 - }, - { "text": "┃", "fg": [230, 126, 128, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { - "text": "Sharing is not implemented for V2 sessions yet", - "fg": [211, 198, 170, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 46 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [230, 126, 128, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [160, 165, 167, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": " -", "fg": [226, 106, 117, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [211, 198, 170, 255], "bg": [55, 34, 44, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [55, 34, 44, 255], - "attributes": 0, - "width": 47 - }, - { "text": "┃", "fg": [230, 126, 128, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 50 - }, - { "text": "┃", "fg": [230, 126, 128, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [160, 165, 167, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": " +", "fg": [184, 219, 135, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "after", "fg": [211, 198, 170, 255], "bg": [32, 48, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 100 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": "The fixture was updated.", - "fg": [211, 198, 170, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 24 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 89 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 1.9s", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Ask me about the fixture direction.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 35 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "# Questions", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 100 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Which direction should the fixture take?", - "fg": [122, 132, 120, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 40 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 71 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Keep it minimal (Recommended)", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 82 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": "Keeping the fixture minimal.", - "fg": [211, 198, 170, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 85 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 216ms", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [211, 198, 170, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [52, 63, 68, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...e25f-6338-4d9f-ad75-45e13804d277/files", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "⦿ UI", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/toast-info.frame.json b/packages/lab/catalog/public/captures/everforest/toast-info.frame.json deleted file mode 100644 index 978e26c2825..00000000000 --- a/packages/lab/catalog/public/captures/everforest/toast-info.frame.json +++ /dev/null @@ -1,686 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [69, 79, 53, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "DriveCatalog", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 12 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "cap", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 3 }, - { "text": "t", "fg": [74, 70, 62, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 1 }, - { "text": "u", "fg": [58, 57, 51, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 1 }, - { "text": "r", "fg": [42, 44, 42, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [27, 30, 31, 255], "bg": [21, 26, 28, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 84 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [19, 22, 24, 255], "bg": [20, 24, 27, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 24, 27, 255], "attributes": 0, "width": 2 }, - { "text": "←", "fg": [42, 45, 42, 255], "bg": [20, 24, 27, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 24, 27, 255], "attributes": 0, "width": 1 }, - { "text": "Patched", "fg": [42, 45, 42, 255], "bg": [20, 24, 27, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 24, 27, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-c471e25f-6338-4d9f", - "fg": [42, 45, 42, 255], - "bg": [20, 24, 27, 255], - "attributes": 0, - "width": 65 - }, - { "text": "┃", "fg": [54, 79, 60, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 34 - }, - { "text": "┃", "fg": [54, 79, 60, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [19, 22, 24, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 25, 28, 255], - "attributes": 0, - "width": 77 - }, - { "text": "┃", "fg": [54, 79, 60, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Debug", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "info", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "copied", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "to", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "clipboard", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [54, 79, 60, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [19, 22, 24, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [66, 68, 69, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": "-", "fg": [93, 44, 48, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [87, 82, 70, 255], "bg": [23, 14, 18, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [23, 14, 18, 255], - "attributes": 0, - "width": 63 - }, - { "text": "┃", "fg": [54, 79, 60, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 34 - }, - { "text": "┃", "fg": [54, 79, 60, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [19, 22, 24, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [66, 68, 69, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [76, 90, 56, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": "after", "fg": [87, 82, 70, 255], "bg": [13, 20, 24, 255], "attributes": 0, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [13, 20, 24, 255], - "attributes": 0, - "width": 100 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [19, 22, 24, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 25, 28, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 5 }, - { "text": "The", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "fixture", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "was", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "updated.", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 89 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "Si", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Debug", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 1, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - }, - { "text": "esc", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 12 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Ask", "fg": [87, 82, 70, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "me", "fg": [87, 82, 70, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "abo", "fg": [87, 82, 70, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Version ", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "local (local)", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 13 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 62 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 12 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Date ", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": "2026-08-12T19:26:41.648Z", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 24 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 51 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "OS ", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": "macOS 25.5.0 (arm64)", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 20 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 55 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [19, 22, 24, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 12 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Terminal ", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "ghostty 1.3.1", "fg": [211, 198, 170, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 13 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 62 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [19, 22, 24, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "#", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Question", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Session ID", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": "ses_0088f226dffePe3QxXhQjUzBGq", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 30 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 45 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [19, 22, 24, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 12 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Model ", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": "simulation/gpt-sim-model", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 24 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 51 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [19, 22, 24, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Which", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "dire", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [19, 22, 24, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Keep", "fg": [87, 82, 70, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "it", "fg": [87, 82, 70, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "mi", "fg": [87, 82, 70, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Share this when reporting an issue.", - "fg": [122, 132, 120, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 35 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 35 - }, - { "text": "✓ copied", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 1, "width": 8 }, - { "text": " ", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "enter", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [19, 22, 24, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 12 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 5 }, - { "text": "Keeping", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "the", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "fixture", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "minimal.", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 85 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "216ms", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [52, 77, 74, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [87, 82, 70, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [50, 54, 49, 255], "bg": [21, 26, 28, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 26, 28, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [52, 77, 74, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [21, 26, 28, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...e25f-6338-4d9f-ad75-45e13804d277/files", - "fg": [50, 54, 49, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "agents", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p", "fg": [87, 82, 70, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 1 }, - { "text": "commands", "fg": [50, 54, 49, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 22, 24, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [19, 22, 24, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [69, 79, 53, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "⦿", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [50, 54, 49, 255], "bg": [21, 25, 28, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [21, 25, 28, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/toast-success.frame.json b/packages/lab/catalog/public/captures/everforest/toast-success.frame.json deleted file mode 100644 index 9e763f4ac12..00000000000 --- a/packages/lab/catalog/public/captures/everforest/toast-success.frame.json +++ /dev/null @@ -1,593 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [167, 192, 128, 255], "bg": [52, 63, 68, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { - "text": "OpenCode DriveCatalog cap", - "fg": [211, 198, 170, 255], - "bg": [52, 63, 68, 255], - "attributes": 1, - "width": 25 - }, - { "text": "t", "fg": [179, 171, 150, 255], "bg": [52, 63, 68, 255], "attributes": 1, "width": 1 }, - { "text": "u", "fg": [141, 139, 125, 255], "bg": [52, 63, 68, 255], "attributes": 1, "width": 1 }, - { "text": "r", "fg": [103, 106, 101, 255], "bg": [52, 63, 68, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [65, 74, 76, 255], "bg": [52, 63, 68, 255], "attributes": 1, "width": 1 }, - { "text": " + ", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [49, 58, 65, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [49, 58, 65, 255], "attributes": 0, "width": 2 }, - { "text": "←", "fg": [101, 110, 103, 255], "bg": [49, 58, 65, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [49, 58, 65, 255], "attributes": 0, "width": 1 }, - { "text": "Patched", "fg": [101, 110, 103, 255], "bg": [49, 58, 65, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [49, 58, 65, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-c471e25f-", - "fg": [101, 110, 103, 255], - "bg": [49, 58, 65, 255], - "attributes": 0, - "width": 56 - }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 43 - }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 68 - }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { - "text": "Session transcript copied to clipboard!", - "fg": [211, 198, 170, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 39 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [160, 165, 167, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": " -", "fg": [226, 106, 117, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [211, 198, 170, 255], "bg": [55, 34, 44, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [55, 34, 44, 255], - "attributes": 0, - "width": 54 - }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 43 - }, - { "text": "┃", "fg": [167, 192, 128, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [160, 165, 167, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": " +", "fg": [184, 219, 135, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "after", "fg": [211, 198, 170, 255], "bg": [32, 48, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 100 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": "The fixture was updated.", - "fg": [211, 198, 170, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 24 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 89 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 1.9s", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Ask me about the fixture direction.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 35 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "# Questions", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 100 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Which direction should the fixture take?", - "fg": [122, 132, 120, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 40 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 71 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Keep it minimal (Recommended)", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 82 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [45, 53, 59, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": "Keeping the fixture minimal.", - "fg": [211, 198, 170, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 85 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 216ms", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [211, 198, 170, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [52, 63, 68, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...e25f-6338-4d9f-ad75-45e13804d277/files", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "⦿ UI", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/webfetch-streaming.frame.json b/packages/lab/catalog/public/captures/everforest/webfetch-streaming.frame.json deleted file mode 100644 index ed5de44a398..00000000000 --- a/packages/lab/catalog/public/captures/everforest/webfetch-streaming.frame.json +++ /dev/null @@ -1,475 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [59, 69, 72, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [167, 192, 128, 255], "bg": [59, 69, 72, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [59, 69, 72, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [211, 198, 170, 255], "bg": [59, 69, 72, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [59, 69, 72, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Fetch the Example Domain.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 86 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "⠋", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "Fetching from the web...", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 24 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 87 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [211, 198, 170, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [52, 63, 68, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { "text": "■", "fg": [98, 140, 137, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [136, 199, 192, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "⬝⬝⬝⬝⬝", "fg": [70, 93, 95, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "esc ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 4 }, - { "text": "interrupt", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 58 - }, - { "text": "shift+tab ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/webfetch-success.frame.json b/packages/lab/catalog/public/captures/everforest/webfetch-success.frame.json deleted file mode 100644 index 392799edfbe..00000000000 --- a/packages/lab/catalog/public/captures/everforest/webfetch-success.frame.json +++ /dev/null @@ -1,483 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [62, 72, 74, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [167, 192, 128, 255], "bg": [62, 72, 74, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [62, 72, 74, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [211, 198, 170, 255], "bg": [62, 72, 74, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [62, 72, 74, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Fetch the Example Domain.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 86 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "%", "fg": [230, 126, 128, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "WebFetch https://example.com", - "fg": [230, 126, 128, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": "The web fetch is complete.", - "fg": [211, 198, 170, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 87 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [211, 198, 170, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [52, 63, 68, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { "text": "■", "fg": [98, 140, 137, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [136, 199, 192, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "⬝⬝⬝⬝⬝", "fg": [70, 93, 95, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "esc ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 4 }, - { "text": "interrupt", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 58 - }, - { "text": "shift+tab ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/websearch-failure.frame.json b/packages/lab/catalog/public/captures/everforest/websearch-failure.frame.json deleted file mode 100644 index 36359ab5989..00000000000 --- a/packages/lab/catalog/public/captures/everforest/websearch-failure.frame.json +++ /dev/null @@ -1,529 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [167, 192, 128, 255], "bg": [52, 63, 68, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [53, 64, 69, 255], "attributes": 0, "width": 1 }, - { "text": "O", "fg": [211, 198, 170, 255], "bg": [54, 64, 69, 255], "attributes": 1, "width": 1 }, - { "text": "p", "fg": [211, 198, 170, 255], "bg": [54, 65, 70, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [211, 198, 170, 255], "bg": [55, 66, 70, 255], "attributes": 1, "width": 1 }, - { "text": "n", "fg": [211, 198, 170, 255], "bg": [56, 67, 71, 255], "attributes": 1, "width": 1 }, - { "text": "C", "fg": [211, 198, 170, 255], "bg": [57, 68, 71, 255], "attributes": 1, "width": 1 }, - { "text": "o", "fg": [211, 198, 170, 255], "bg": [58, 68, 72, 255], "attributes": 1, "width": 1 }, - { "text": "d", "fg": [211, 198, 170, 255], "bg": [59, 69, 73, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [211, 198, 170, 255], "bg": [60, 70, 73, 255], "attributes": 1, "width": 1 }, - { "text": " D", "fg": [211, 198, 170, 255], "bg": [61, 71, 74, 255], "attributes": 1, "width": 2 }, - { "text": "ri", "fg": [211, 198, 170, 255], "bg": [62, 71, 74, 255], "attributes": 1, "width": 2 }, - { "text": "v", "fg": [211, 198, 170, 255], "bg": [62, 72, 74, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [211, 198, 170, 255], "bg": [62, 71, 74, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [60, 70, 73, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [56, 66, 70, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 13 }, - { "text": " + ", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Fetch the Example Domain.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 86 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "%", "fg": [230, 126, 128, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "WebFetch https://example.com", - "fg": [230, 126, 128, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": "The web fetch is complete.", - "fg": [211, 198, 170, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 87 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 5.7s", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Search the web for the OpenCode terminal interface.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 51 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "⠹", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "Searching web...", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 16 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 95 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [211, 198, 170, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [52, 63, 68, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { "text": "■", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [136, 199, 192, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [98, 140, 137, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [80, 110, 110, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [68, 90, 92, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [60, 77, 81, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "⬝⬝", "fg": [94, 133, 131, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "esc ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 4 }, - { "text": "interrupt", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 58 - }, - { "text": "shift+tab ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/everforest/websearch-running.frame.json b/packages/lab/catalog/public/captures/everforest/websearch-running.frame.json deleted file mode 100644 index 6f9891ab7d8..00000000000 --- a/packages/lab/catalog/public/captures/everforest/websearch-running.frame.json +++ /dev/null @@ -1,518 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [53, 64, 69, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [174, 186, 136, 255], "bg": [53, 64, 69, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [53, 64, 69, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [211, 198, 170, 255], "bg": [53, 64, 69, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [53, 64, 69, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Fetch the Example Domain.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 86 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "%", "fg": [230, 126, 128, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "WebFetch https://example.com", - "fg": [230, 126, 128, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": "The web fetch is complete.", - "fg": [211, 198, 170, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 87 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 5.7s", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { - "text": "Search the web for the OpenCode terminal interface.", - "fg": [211, 198, 170, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 51 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 60 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 5 }, - { "text": "⠋", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "Searching web...", - "fg": [122, 132, 120, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 16 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 95 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [127, 187, 179, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [211, 198, 170, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [122, 132, 120, 255], "bg": [52, 63, 68, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [52, 63, 68, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [52, 63, 68, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 3 }, - { "text": "■", "fg": [136, 199, 192, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [127, 187, 179, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "⬝⬝⬝⬝⬝⬝", "fg": [65, 85, 88, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 1 }, - { "text": "esc ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 4 }, - { "text": "interrupt", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 58 - }, - { "text": "shift+tab ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [211, 198, 170, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [122, 132, 120, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 53, 59, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 53, 59, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [167, 192, 128, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [122, 132, 120, 255], "bg": [51, 60, 67, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [51, 60, 67, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/agent-picker.frame.json b/packages/lab/catalog/public/captures/opencode/agent-picker.frame.json deleted file mode 100644 index e4649c876a1..00000000000 --- a/packages/lab/catalog/public/captures/opencode/agent-picker.frame.json +++ /dev/null @@ -1,684 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [103, 73, 54, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "New", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "session", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 86 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "Select agent", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 1, "width": 12 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 37 - }, - { "text": "esc", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "Search", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 50 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [250, 178, 131, 255], "attributes": 0, "width": 1 }, - { "text": "●", "fg": [10, 10, 10, 255], "bg": [250, 178, 131, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [250, 178, 131, 255], "attributes": 0, "width": 1 }, - { - "text": "build The default agent. Executes tools based on con", - "fg": [10, 10, 10, 255], - "bg": [250, 178, 131, 255], - "attributes": 1, - "width": 52 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [250, 178, 131, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "plan", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { - "text": " Read-only agent for exploring the codebase and ", - "fg": [128, 128, 128, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 48 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "reviewer", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 8 }, - { - "text": " Reviews deterministic UI fixtures", - "fg": [128, 128, 128, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 34 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 2 }, - { "text": "Ask", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "anything...", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 11 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "\"What", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "is", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "the", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "tech", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "stack", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "of", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "this", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "project?\"", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [38, 64, 101, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 38 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "╹", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [12, 12, 12, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { - "text": "/private/var/folde...-dca9766779d4/files", - "fg": [53, 53, 53, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 40 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "agents", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "commands", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 111 - }, - { "text": "local", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [52, 89, 59, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "○", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [8, 8, 8, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/assistant-response-failed.frame.json b/packages/lab/catalog/public/captures/opencode/assistant-response-failed.frame.json deleted file mode 100644 index 278ccf93d28..00000000000 --- a/packages/lab/catalog/public/captures/opencode/assistant-response-failed.frame.json +++ /dev/null @@ -1,517 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [250, 178, 131, 255], "bg": [30, 30, 30, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [238, 238, 238, 255], "bg": [30, 30, 30, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Show a successful streaming assistant response.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 47 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 64 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": "This assistant response completes successfully.", - "fg": [238, 238, 238, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 47 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 66 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 114ms", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Show a failed assistant response.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 33 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 78 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": "This response starts but the simulated provider disconnects.", - "fg": [238, 238, 238, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 53 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": "Error: Decode error (200 POST https://api.openai.com/v1/chat/completions)", - "fg": [224, 108, 117, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 73 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 40 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": "Build · Simulated Model · 494ms", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 31 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [238, 238, 238, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [30, 30, 30, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...214e-117d-40e8-b217-bbf3bb0abed0/files", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "● UI", "fg": [224, 108, 117, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/assistant-response-interrupted.frame.json b/packages/lab/catalog/public/captures/opencode/assistant-response-interrupted.frame.json deleted file mode 100644 index 56c813e7a1b..00000000000 --- a/packages/lab/catalog/public/captures/opencode/assistant-response-interrupted.frame.json +++ /dev/null @@ -1,548 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [43, 43, 43, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [250, 178, 131, 255], "bg": [43, 43, 43, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [43, 43, 43, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [238, 238, 238, 255], "bg": [43, 43, 43, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [43, 43, 43, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Show a successful streaming assistant response.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 47 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 64 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": "This assistant response completes successfully.", - "fg": [238, 238, 238, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 47 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 66 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 114ms", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Show a failed assistant response.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 33 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 78 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": "This response starts but the simulated provider disconnects.", - "fg": [238, 238, 238, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 53 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": "Error: Decode error (200 POST https://api.openai.com/v1/chat/completions)", - "fg": [224, 108, 117, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 73 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 40 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": "Build · Simulated Model · 494ms", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 31 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Show an interrupted assistant response.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 39 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 72 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": "This response remains active until the user interrupts it.", - "fg": [238, 238, 238, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 58 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 55 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [238, 238, 238, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [30, 30, 30, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { "text": "■", "fg": [63, 105, 163, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [97, 162, 231, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "⬝⬝⬝⬝⬝", "fg": [35, 54, 81, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "esc ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 4 }, - { "text": "interrupt", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 58 - }, - { "text": "shift+tab ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "● UI", "fg": [224, 108, 117, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/assistant-response-succeeded.frame.json b/packages/lab/catalog/public/captures/opencode/assistant-response-succeeded.frame.json deleted file mode 100644 index 1b5f63be5a7..00000000000 --- a/packages/lab/catalog/public/captures/opencode/assistant-response-succeeded.frame.json +++ /dev/null @@ -1,476 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 34, 34, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [250, 178, 131, 255], "bg": [34, 34, 34, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 34, 34, 255], "attributes": 0, "width": 1 }, - { "text": "New session", "fg": [238, 238, 238, 255], "bg": [34, 34, 34, 255], "attributes": 1, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 34, 34, 255], - "attributes": 0, - "width": 18 - }, - { "text": " + ", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Show a successful streaming assistant response.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 47 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 64 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": "This assistant response completes successfully.", - "fg": [238, 238, 238, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 47 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 66 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 114ms", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [238, 238, 238, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [30, 30, 30, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...214e-117d-40e8-b217-bbf3bb0abed0/files", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/command-palette.frame.json b/packages/lab/catalog/public/captures/opencode/command-palette.frame.json deleted file mode 100644 index bab2234d546..00000000000 --- a/packages/lab/catalog/public/captures/opencode/command-palette.frame.json +++ /dev/null @@ -1,741 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [103, 73, 54, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "New", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "session", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 86 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "Commands", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 1, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 41 - }, - { "text": "esc", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "Search", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 50 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "Suggested", "fg": [157, 124, 216, 255], "bg": [20, 20, 20, 255], "attributes": 1, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 47 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [250, 178, 131, 255], "attributes": 0, "width": 3 }, - { "text": "Switch model", "fg": [10, 10, 10, 255], "bg": [250, 178, 131, 255], "attributes": 1, "width": 12 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [250, 178, 131, 255], - "attributes": 0, - "width": 32 - }, - { "text": "ctrl+x m", "fg": [10, 10, 10, 255], "bg": [250, 178, 131, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [250, 178, 131, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { - "text": "Connect an integration", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 22 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 34 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "Open settings", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 13 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 43 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 2 }, - { "text": "Ask", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "Session", "fg": [157, 124, 216, 255], "bg": [20, 20, 20, 255], "attributes": 1, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 49 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "Switch session", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 30 - }, - { "text": "ctrl+x l", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 2 }, - { "text": "Buil", "fg": [38, 64, 101, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "New session", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 33 - }, - { "text": "ctrl+x n", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "╹", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "▀▀▀▀▀▀", "fg": [12, 12, 12, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { - "text": "Open session or project", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 23 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 23 - }, - { "text": "ctrl+o", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "▀▀▀▀▀▀▀▀", "fg": [12, 12, 12, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "/privat", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "Close tab", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 35 - }, - { "text": "ctrl+x w", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "commands", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { - "text": "Reopen closed tab", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 17 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 23 - }, - { "text": "ctrl+shift+t", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 12 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 111 - }, - { "text": "local", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [52, 89, 59, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "○", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [8, 8, 8, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/debug.frame.json b/packages/lab/catalog/public/captures/opencode/debug.frame.json deleted file mode 100644 index 0cd09c7a47c..00000000000 --- a/packages/lab/catalog/public/captures/opencode/debug.frame.json +++ /dev/null @@ -1,555 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [103, 73, 54, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "New", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "session", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 86 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Debug", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 1, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - }, - { "text": "esc", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Version ", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "local (local)", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 13 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 62 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Date ", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": "2026-08-12T19:26:35.884Z", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 24 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 51 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "OS ", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": "macOS 25.5.0 (arm64)", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 20 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 55 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Terminal ", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "ghostty 1.3.1", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 13 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 62 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Session ID", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "n/a", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 72 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Model ", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": "simulation/gpt-sim-model", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 24 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 51 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Share this when reporting an issue.", - "fg": [128, 128, 128, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 35 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 39 - }, - { "text": "copy", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 1, "width": 4 }, - { "text": " ", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "enter", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [38, 64, 101, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 38 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "╹", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [12, 12, 12, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { - "text": "/private/var/folde...-dca9766779d4/files", - "fg": [53, 53, 53, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 40 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "agents", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "commands", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 111 - }, - { "text": "local", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [52, 89, 59, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "○", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [8, 8, 8, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/diff-viewer.frame.json b/packages/lab/catalog/public/captures/opencode/diff-viewer.frame.json deleted file mode 100644 index 55e4a42972a..00000000000 --- a/packages/lab/catalog/public/captures/opencode/diff-viewer.frame.json +++ /dev/null @@ -1,460 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "Diff ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "working tree", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 12 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 93 - }, - { "text": "0 files", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 7 } - ] - }, - { - "spans": [ - { - "text": "────────────────────────────────────────────────────────────────────────────────", - "fg": [72, 72, 72, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 80 - }, - { "text": "┃", "fg": [86, 182, 194, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 34 - }, - { "text": "┃", "fg": [86, 182, 194, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "──", "fg": [72, 72, 72, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "No changes to show", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 61 - }, - { "text": "┃", "fg": [86, 182, 194, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { - "text": "Debug info copied to clipboard", - "fg": [238, 238, 238, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 30 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [86, 182, 194, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 80 - }, - { "text": "┃", "fg": [86, 182, 194, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 34 - }, - { "text": "┃", "fg": [86, 182, 194, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "tab ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 4 }, - { - "text": "focus file tree", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "n ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "next file", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "] ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "next hunk", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "[ ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "previous hunk", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "p ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "previous file", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "d ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "switch source", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "m ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "mark reviewed", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "? ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "all", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/glob-empty.frame.json b/packages/lab/catalog/public/captures/opencode/glob-empty.frame.json deleted file mode 100644 index afb325c05a8..00000000000 --- a/packages/lab/catalog/public/captures/opencode/glob-empty.frame.json +++ /dev/null @@ -1,530 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [33, 33, 33, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [250, 178, 131, 255], "bg": [33, 33, 33, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [33, 33, 33, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [238, 238, 238, 255], "bg": [33, 33, 33, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [33, 33, 33, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Find the TypeScript source files.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 33 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 78 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "Explored — 1 search", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 92 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": "The first glob search is complete.", - "fg": [238, 238, 238, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 34 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 79 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 937ms", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Find Rust files that do not exist.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 34 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "Explored — 1 search", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 92 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": "The empty glob search is complete.", - "fg": [238, 238, 238, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 34 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 79 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 149ms", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [238, 238, 238, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [30, 30, 30, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...8837-bd93-4bb8-b8f0-515ca3bddb81/files", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/glob-success.frame.json b/packages/lab/catalog/public/captures/opencode/glob-success.frame.json deleted file mode 100644 index 457145a6a48..00000000000 --- a/packages/lab/catalog/public/captures/opencode/glob-success.frame.json +++ /dev/null @@ -1,486 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [43, 43, 43, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [250, 178, 131, 255], "bg": [43, 43, 43, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [43, 43, 43, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [238, 238, 238, 255], "bg": [43, 43, 43, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [43, 43, 43, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Find the TypeScript source files.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 33 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 78 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "Explored — 1 search", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 92 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": "The first glob search is complete.", - "fg": [238, 238, 238, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 34 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 79 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 937ms", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [238, 238, 238, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [30, 30, 30, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...8837-bd93-4bb8-b8f0-515ca3bddb81/files", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/grep-empty.frame.json b/packages/lab/catalog/public/captures/opencode/grep-empty.frame.json deleted file mode 100644 index 6e99b9b77c9..00000000000 --- a/packages/lab/catalog/public/captures/opencode/grep-empty.frame.json +++ /dev/null @@ -1,547 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [33, 33, 33, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [250, 178, 131, 255], "bg": [33, 33, 33, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [33, 33, 33, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [238, 238, 238, 255], "bg": [33, 33, 33, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [33, 33, 33, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": "The grouped exploration is complete.", - "fg": [238, 238, 238, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 36 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 77 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 734ms", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Search the source directory for credits.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 40 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 71 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "Explored — 1 search", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 92 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": "The matching grep search is complete.", - "fg": [238, 238, 238, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 37 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 76 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 105ms", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Search the source directory for DEADBEEF.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 41 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 70 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "Explored — 1 search", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 92 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": "The empty grep search is complete.", - "fg": [238, 238, 238, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 34 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 79 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 160ms", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [238, 238, 238, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [30, 30, 30, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...8837-bd93-4bb8-b8f0-515ca3bddb81/files", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "● UI", "fg": [224, 108, 117, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/grep-failure.frame.json b/packages/lab/catalog/public/captures/opencode/grep-failure.frame.json deleted file mode 100644 index 6187dddcee8..00000000000 --- a/packages/lab/catalog/public/captures/opencode/grep-failure.frame.json +++ /dev/null @@ -1,547 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [41, 41, 41, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [250, 178, 131, 255], "bg": [41, 41, 41, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [41, 41, 41, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [238, 238, 238, 255], "bg": [41, 41, 41, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [41, 41, 41, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": "The matching grep search is complete.", - "fg": [238, 238, 238, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 37 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 76 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 105ms", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Search the source directory for DEADBEEF.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 41 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 70 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "Explored — 1 search", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 92 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": "The empty grep search is complete.", - "fg": [238, 238, 238, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 34 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 79 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 160ms", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Run an invalid regular expression search.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 41 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 70 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "Explored — 1 search", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 92 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": "The invalid grep search is complete.", - "fg": [238, 238, 238, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 36 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 77 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 109ms", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [238, 238, 238, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [30, 30, 30, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...8837-bd93-4bb8-b8f0-515ca3bddb81/files", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "● UI", "fg": [224, 108, 117, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/grep-success.frame.json b/packages/lab/catalog/public/captures/opencode/grep-success.frame.json deleted file mode 100644 index 5aff3ee7c39..00000000000 --- a/packages/lab/catalog/public/captures/opencode/grep-success.frame.json +++ /dev/null @@ -1,547 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [43, 43, 43, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [250, 178, 131, 255], "bg": [43, 43, 43, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [43, 43, 43, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [238, 238, 238, 255], "bg": [43, 43, 43, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [43, 43, 43, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": "The empty glob search is complete.", - "fg": [238, 238, 238, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 34 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 79 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 149ms", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Explore TypeScript files and search them for credits together.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 62 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 49 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "Explored — 2 searches", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 21 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 90 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": "The grouped exploration is complete.", - "fg": [238, 238, 238, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 36 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 77 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 734ms", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Search the source directory for credits.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 40 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 71 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "Explored — 1 search", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 92 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": "The matching grep search is complete.", - "fg": [238, 238, 238, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 37 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 76 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 105ms", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [238, 238, 238, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [30, 30, 30, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...8837-bd93-4bb8-b8f0-515ca3bddb81/files", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "● UI", "fg": [224, 108, 117, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/grouped-exploration.frame.json b/packages/lab/catalog/public/captures/opencode/grouped-exploration.frame.json deleted file mode 100644 index 3bdaf299146..00000000000 --- a/packages/lab/catalog/public/captures/opencode/grouped-exploration.frame.json +++ /dev/null @@ -1,547 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [250, 178, 131, 255], "bg": [30, 30, 30, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [238, 238, 238, 255], "bg": [30, 30, 30, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": "The first glob search is complete.", - "fg": [238, 238, 238, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 34 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 79 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 937ms", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Find Rust files that do not exist.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 34 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "Explored — 1 search", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 92 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": "The empty glob search is complete.", - "fg": [238, 238, 238, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 34 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 79 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 149ms", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Explore TypeScript files and search them for credits together.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 62 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 49 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "Explored — 2 searches", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 21 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 90 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": "The grouped exploration is complete.", - "fg": [238, 238, 238, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 36 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 77 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 734ms", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [238, 238, 238, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [30, 30, 30, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...8837-bd93-4bb8-b8f0-515ca3bddb81/files", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "● UI", "fg": [224, 108, 117, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/help.frame.json b/packages/lab/catalog/public/captures/opencode/help.frame.json deleted file mode 100644 index cfcb60cdb11..00000000000 --- a/packages/lab/catalog/public/captures/opencode/help.frame.json +++ /dev/null @@ -1,682 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [103, 73, 54, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "New", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "session", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 86 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Help", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 1, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 43 - }, - { "text": "esc/enter", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Press ctrl+p to see all available actions and commands ", - "fg": [128, 128, 128, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 55 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "in any context.", - "fg": [128, 128, 128, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 43 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 50 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [250, 178, 131, 255], "attributes": 0, "width": 3 }, - { "text": "ok", "fg": [10, 10, 10, 255], "bg": [250, 178, 131, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [250, 178, 131, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 2 }, - { "text": "Ask", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "anything...", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 11 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "\"What", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "is", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "the", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "tech", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "stack", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "of", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "this", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "project?\"", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [38, 64, 101, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 38 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "╹", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [12, 12, 12, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { - "text": "/private/var/folde...-dca9766779d4/files", - "fg": [53, 53, 53, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 40 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "agents", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "commands", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 111 - }, - { "text": "local", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [52, 89, 59, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "○", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [8, 8, 8, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/home.frame.json b/packages/lab/catalog/public/captures/opencode/home.frame.json deleted file mode 100644 index 6af5f3a0729..00000000000 --- a/packages/lab/catalog/public/captures/opencode/home.frame.json +++ /dev/null @@ -1,616 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [250, 178, 131, 255], "bg": [30, 30, 30, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "New session", "fg": [238, 238, 238, 255], "bg": [30, 30, 30, 255], "attributes": 1, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 86 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 40 - }, - { - "text": " ", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 19 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ▄ ", - "fg": [238, 238, 238, 255], - "bg": [10, 10, 10, 255], - "attributes": 1, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 39 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 40 - }, - { - "text": "█▀▀█ █▀▀█ █▀▀█ █▀▀▄", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 19 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "█▀▀▀ █▀▀█ █▀▀█ █▀▀█", - "fg": [238, 238, 238, 255], - "bg": [10, 10, 10, 255], - "attributes": 1, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 39 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 40 - }, - { "text": "█", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [128, 128, 128, 255], "bg": [40, 40, 40, 255], "attributes": 0, "width": 2 }, - { "text": "█ █", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [128, 128, 128, 255], "bg": [40, 40, 40, 255], "attributes": 0, "width": 2 }, - { "text": "█ █", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { "text": "▀▀▀", "fg": [128, 128, 128, 255], "bg": [40, 40, 40, 255], "attributes": 0, "width": 3 }, - { "text": " █", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [128, 128, 128, 255], "bg": [40, 40, 40, 255], "attributes": 0, "width": 2 }, - { "text": "█", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "█", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [238, 238, 238, 255], "bg": [67, 67, 67, 255], "attributes": 1, "width": 3 }, - { "text": " █", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 1, "width": 2 }, - { "text": " ", "fg": [238, 238, 238, 255], "bg": [67, 67, 67, 255], "attributes": 1, "width": 2 }, - { "text": "█ █", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 1, "width": 3 }, - { "text": " ", "fg": [238, 238, 238, 255], "bg": [67, 67, 67, 255], "attributes": 1, "width": 2 }, - { "text": "█ █", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 1, "width": 3 }, - { "text": "▀▀▀", "fg": [238, 238, 238, 255], "bg": [67, 67, 67, 255], "attributes": 1, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 39 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 40 - }, - { - "text": "▀▀▀▀ █▀▀▀ ▀▀▀▀ ▀", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 16 - }, - { "text": "▀▀", "fg": [40, 40, 40, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "▀", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀ ▀▀▀▀ ▀▀▀▀ ▀▀▀▀", - "fg": [238, 238, 238, 255], - "bg": [10, 10, 10, 255], - "attributes": 1, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 39 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { - "text": "Ask anything... \"What is the tech stack of this project?\"", - "fg": [128, 128, 128, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 57 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [238, 238, 238, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 38 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 22 - }, - { "text": "╹", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [30, 30, 30, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 22 - }, - { - "text": "/private/var/folde...-dca9766779d4/files", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 40 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 111 - }, - { "text": "local", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/integration-picker.frame.json b/packages/lab/catalog/public/captures/opencode/integration-picker.frame.json deleted file mode 100644 index 351797dcda1..00000000000 --- a/packages/lab/catalog/public/captures/opencode/integration-picker.frame.json +++ /dev/null @@ -1,729 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [103, 73, 54, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "New", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "session", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 86 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { - "text": "Connect an integration", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 1, - "width": 22 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 27 - }, - { "text": "esc", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "Search", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 50 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "Popular", "fg": [157, 124, 216, 255], "bg": [20, 20, 20, 255], "attributes": 1, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 49 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [250, 178, 131, 255], "attributes": 0, "width": 3 }, - { "text": "OpenCode", "fg": [10, 10, 10, 255], "bg": [250, 178, 131, 255], "attributes": 1, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [250, 178, 131, 255], - "attributes": 0, - "width": 47 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "openai", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 50 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "github-copilot", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 42 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 2 }, - { "text": "Ask", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "Services", "fg": [157, 124, 216, 255], "bg": [20, 20, 20, 255], "attributes": 1, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 48 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "azure", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 51 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 2 }, - { "text": "Buil", "fg": [38, 64, 101, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { - "text": "cloudflare-ai-gateway", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 21 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 35 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "╹", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "▀▀▀▀▀▀", "fg": [12, 12, 12, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { - "text": "cloudflare-workers-ai", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 21 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 35 - }, - { "text": "▀▀▀▀▀▀▀▀", "fg": [12, 12, 12, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "/privat", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "Exa", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 53 - }, - { "text": "commands", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "Firecrawl", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 47 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 111 - }, - { "text": "local", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [52, 89, 59, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "○", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [8, 8, 8, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/mcp-list.frame.json b/packages/lab/catalog/public/captures/opencode/mcp-list.frame.json deleted file mode 100644 index a5bcce3b9d8..00000000000 --- a/packages/lab/catalog/public/captures/opencode/mcp-list.frame.json +++ /dev/null @@ -1,680 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [103, 73, 54, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "New", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "session", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 86 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "MCP servers", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 1, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 38 - }, - { "text": "esc", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "Search", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 50 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { - "text": "No items available", - "fg": [128, 128, 128, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 38 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "connect space", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 13 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 43 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 2 }, - { "text": "Ask", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "anything...", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 11 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "\"What", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "is", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "the", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "tech", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "stack", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "of", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "this", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "project?\"", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [38, 64, 101, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 38 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "╹", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [12, 12, 12, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { - "text": "/private/var/folde...-dca9766779d4/files", - "fg": [53, 53, 53, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 40 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "agents", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "commands", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 111 - }, - { "text": "local", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [52, 89, 59, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "○", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [8, 8, 8, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/model-picker.frame.json b/packages/lab/catalog/public/captures/opencode/model-picker.frame.json deleted file mode 100644 index ab7a20ebac0..00000000000 --- a/packages/lab/catalog/public/captures/opencode/model-picker.frame.json +++ /dev/null @@ -1,691 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [103, 73, 54, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "New", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "session", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 86 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "Select model", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 1, "width": 12 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 37 - }, - { "text": "esc", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "Search", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 50 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [250, 178, 131, 255], "attributes": 0, "width": 1 }, - { "text": "●", "fg": [10, 10, 10, 255], "bg": [250, 178, 131, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [250, 178, 131, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [10, 10, 10, 255], - "bg": [250, 178, 131, 255], - "attributes": 1, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [250, 178, 131, 255], - "attributes": 0, - "width": 40 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { - "text": "View all integrations", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 21 - }, - { "text": " ctrl+a", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 2 }, - { "text": "Ask", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "anything...", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 11 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "\"What", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "is", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "the", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "tech", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "stack", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "of", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "this", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "project?\"", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [38, 64, 101, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 38 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "╹", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [12, 12, 12, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { - "text": "/private/var/folde...-dca9766779d4/files", - "fg": [53, 53, 53, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 40 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "agents", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "commands", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 111 - }, - { "text": "local", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [52, 89, 59, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "○", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [8, 8, 8, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/pair.frame.json b/packages/lab/catalog/public/captures/opencode/pair.frame.json deleted file mode 100644 index c787473e6f6..00000000000 --- a/packages/lab/catalog/public/captures/opencode/pair.frame.json +++ /dev/null @@ -1,669 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [103, 73, 54, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "New", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "session", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 86 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Pair", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 1, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 77 - }, - { "text": "esc", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "This device", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 30 - }, - { - "text": "█▀▀▀▀▀▀▀█▀█▀▀▀▀███▀████▀██▀██▀▀██▀█▀▀▀▀▀▀▀█", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "http://localhost:60110", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 22 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 19 - }, - { - "text": "█ █▀▀▀█ ██▀ ▄▀ █▀█▄▄▀▀▀▀▀▀▄███▀ ██ █▀▀▀█ █", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 43 - }, - { - "text": "█ █ █ ██▀▀▀▀█▄▀ ▀▄▄▄ ██▀▄█▀ █▀▄█ █ █ █", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "URLs", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 37 - }, - { - "text": "█ ▀▀▀▀▀ █▀█▀▄▀█▀▄ ▄ ▄▀█▀▄ █▀█ █ █▀█ ▀▀▀▀▀ █", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "http://127.0.0.1:60110", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 22 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 19 - }, - { - "text": "█▀▀█▀▀█▀█▄█▄▀█▄ ▄ ▀▄███▄▀▄▄▄▄█▀ ▀ █▀█████▀█", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 43 - }, - { - "text": "█▀█▄▀█▀▀▀▀█▄ ▄ ▄▄▄▄▀ █ ██▀ ▄█▀▄▄██ ▄ ███", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Username", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 33 - }, - { - "text": "██▀██ ▀▀█ ▀▄▀▄ ███▀▄ ▀█▄ █▀▄▄▄▄ ▄ ▄▀▄ ▄█▀██", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "opencode", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 33 - }, - { - "text": "█▀▄█▄██▀▄▀▄ █▄ ▄▀██▄ █▀▄▄ █ ▄▀█▀▀ ▄▄▄▄▄▄ █", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 43 - }, - { - "text": "█ █ █▄▀▀▄▄█▀▀ ▀█▀▄██▀▀█ ▄▀▀▄▀█▀▄▀█▄▀█▀▄▀██", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Password", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 33 - }, - { - "text": "█▄▄▀▀▄ ▀▀▄█▀▀ ▀ ▀ ▄▀▀▀▄ ▄▄ █▄▀▄▄▀█▄▀█", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "************", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 12 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 29 - }, - { - "text": "█▀ ▄▄▄█▀ ▀▄ █▀ █ ▀█▀█ ▀█▄ ▀█▀ █▀▄ ██▀ ▀ █", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 43 - }, - { - "text": "█▀ ▀▀ █▀██▄██▀▀▀██▄█▄▀▄▀ ▀█▀▀█▄█▄ ██ ▄ ▀██", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Run `opencode service set ", - "fg": [128, 128, 128, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 15 - }, - { - "text": "██ █▀▄ ▀▄ █▀█▄▄▀▄▄ ██▄▄ █ ▀█▄ ▄▀█ ▄ ▄▀ ██", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "hostname 0.0.0.0` to access ", - "fg": [128, 128, 128, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 28 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 13 }, - { - "text": "█ ▄ █▄▀▀▀███▄▀█▀ █ ▄▀▄██▄ ▄█ ▀█▀▀▄▄▄▄▄▀█▀ █", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "the service remotely.", - "fg": [128, 128, 128, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 21 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 20 - }, - { - "text": "███ ▄▄ ▀▀▄█▀ ▄▄▄▀▀ ▄▄ █▀█▀▀▄▄▀█▀ ▄▄██▀ ▄▀▀█", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 43 - }, - { - "text": "█ ▀▀▀ ▀▀▀▄ ▄█▀▀▄▄ █▀▀ █▀▀ ▀ ▀ ▄█▀▀▄ █▄▀█", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 43 - }, - { - "text": "█ ▄█▀ ▀▄▀▀▀█▄▄▀▀▀▀█▄██▄▄▀▄▄▄▀▀ ▀▀ ▀▀▄▀ █", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 43 - }, - { - "text": "█▀▀▀▀▀▀▀█▄██ ██▀ █▀ ▄▄ ▄ ▄█▄ ▄█ █▀█ ▀▄ ██", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 43 - }, - { - "text": "█ █▀▀▀█ █▀█▀█▀▀ ▀▀ ▀▀ ▀█▄███▀ ▄▄▀ ▀▀▀ ▀█▀▀█", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 43 - }, - { - "text": "█ █ █ █▄ █▀▀▄▀█ █ █ ▄▄▄▄█ ▄ █ ▄▄█▄▀ ▀▄ █", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 111 - }, - { "text": "local", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [52, 89, 59, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "○", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [8, 8, 8, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/patch-created.frame.json b/packages/lab/catalog/public/captures/opencode/patch-created.frame.json deleted file mode 100644 index 7450e484f5a..00000000000 --- a/packages/lab/catalog/public/captures/opencode/patch-created.frame.json +++ /dev/null @@ -1,498 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [42, 42, 42, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [250, 179, 132, 255], "bg": [37, 37, 37, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 34, 34, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [238, 238, 238, 255], "bg": [34, 34, 34, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 34, 34, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Create a file, update the fixture, delete the created file, then attempt an invalid patch.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 90 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 21 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "# Created", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-8169a8e2-4e5e-4b06-abff-4de6b16313bb/files/patched.txt", - "fg": [128, 128, 128, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 101 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 143, 143, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": " +", "fg": [184, 219, 135, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { - "text": "created by patch", - "fg": [238, 238, 238, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 16 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 89 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [238, 238, 238, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [30, 30, 30, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { "text": "■", "fg": [25, 36, 52, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [33, 50, 75, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [45, 72, 110, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [63, 105, 163, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [97, 162, 231, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "⬝⬝", "fg": [49, 80, 122, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "esc ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 4 }, - { "text": "interrupt", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 58 - }, - { "text": "shift+tab ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/patch-deleted.frame.json b/packages/lab/catalog/public/captures/opencode/patch-deleted.frame.json deleted file mode 100644 index 3498fe70eb8..00000000000 --- a/packages/lab/catalog/public/captures/opencode/patch-deleted.frame.json +++ /dev/null @@ -1,557 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [44, 44, 44, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [250, 179, 133, 255], "bg": [39, 39, 39, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [37, 37, 37, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [238, 238, 238, 255], "bg": [37, 37, 37, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [37, 37, 37, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Create a file, update the fixture, delete the created file, then attempt an invalid patch.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 90 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 21 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "# Created", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-8169a8e2-4e5e-4b06-abff-4de6b16313bb/files/patched.txt", - "fg": [128, 128, 128, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 101 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 143, 143, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": " +", "fg": [184, 219, 135, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { - "text": "created by patch", - "fg": [238, 238, 238, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 16 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 89 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "← Patched", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-8169a8e2-4e5e-4b06-abff-4de6b16313bb/files/fixture.txt", - "fg": [128, 128, 128, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 101 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 143, 143, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": " -", "fg": [226, 106, 117, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [238, 238, 238, 255], "bg": [55, 34, 44, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [55, 34, 44, 255], - "attributes": 0, - "width": 99 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 143, 143, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": " +", "fg": [184, 219, 135, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { - "text": "updated by patch", - "fg": [238, 238, 238, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 16 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 89 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "# Deleted", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-8169a8e2-4e5e-4b06-abff-4de6b16313bb/files/patched.txt", - "fg": [128, 128, 128, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 101 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "-1 line", "fg": [197, 59, 83, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 104 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [238, 238, 238, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [30, 30, 30, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { "text": "⬝⬝", "fg": [59, 98, 151, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "■", "fg": [25, 36, 52, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [33, 50, 75, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [45, 72, 110, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [63, 105, 163, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [97, 162, 231, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "esc ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 4 }, - { "text": "interrupt", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 58 - }, - { "text": "shift+tab ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "⦿ UI", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/patch-failed.frame.json b/packages/lab/catalog/public/captures/opencode/patch-failed.frame.json deleted file mode 100644 index 8acb3524d6f..00000000000 --- a/packages/lab/catalog/public/captures/opencode/patch-failed.frame.json +++ /dev/null @@ -1,576 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 44, 45, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [231, 171, 154, 255], "bg": [46, 45, 46, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [47, 46, 47, 255], "attributes": 0, "width": 1 }, - { "text": "O", "fg": [238, 238, 238, 255], "bg": [48, 47, 48, 255], "attributes": 1, "width": 1 }, - { "text": "p", "fg": [238, 238, 238, 255], "bg": [49, 48, 49, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [238, 238, 238, 255], "bg": [49, 49, 50, 255], "attributes": 1, "width": 1 }, - { "text": "nC", "fg": [238, 238, 238, 255], "bg": [51, 51, 52, 255], "attributes": 1, "width": 2 }, - { "text": "o", "fg": [238, 238, 238, 255], "bg": [52, 52, 53, 255], "attributes": 1, "width": 1 }, - { "text": "de D", "fg": [238, 238, 238, 255], "bg": [53, 53, 54, 255], "attributes": 1, "width": 4 }, - { "text": "r", "fg": [238, 238, 238, 255], "bg": [51, 51, 52, 255], "attributes": 1, "width": 1 }, - { "text": "i", "fg": [238, 238, 238, 255], "bg": [47, 46, 47, 255], "attributes": 1, "width": 1 }, - { "text": "v", "fg": [238, 238, 238, 255], "bg": [43, 42, 43, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [238, 238, 238, 255], "bg": [42, 41, 42, 255], "attributes": 1, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [42, 41, 42, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [17, 17, 17, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [17, 17, 17, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "← Patched", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-8169a8e2-4e5e-4b06-abff-4de6b16313bb/files/fixture.txt", - "fg": [128, 128, 128, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 101 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 143, 143, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": " -", "fg": [226, 106, 117, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [238, 238, 238, 255], "bg": [55, 34, 44, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [55, 34, 44, 255], - "attributes": 0, - "width": 99 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 143, 143, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": " +", "fg": [184, 219, 135, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { - "text": "updated by patch", - "fg": [238, 238, 238, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 16 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 89 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "# Deleted", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-8169a8e2-4e5e-4b06-abff-4de6b16313bb/files/patched.txt", - "fg": [128, 128, 128, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 101 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "-1 line", "fg": [197, 59, 83, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 104 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "# Patch failed", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 14 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": "missing-patch.txt", - "fg": [128, 128, 128, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 17 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "patch verification failed: Failed to read file to update /private/var/folders/dd/", - "fg": [224, 108, 117, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 81 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 30 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "5fz89drs5p9_r0fk7rwqqnbr0000gn/T/opencode-drive/run-8169a8e2-4e5e-4b06-abff-4de6b16313bb/files/missing-patch.", - "fg": [224, 108, 117, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 109 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "txt: file does not exist", - "fg": [224, 108, 117, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 24 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 87 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": "The patch file-change lifecycle is complete.", - "fg": [238, 238, 238, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 44 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 69 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 3.1s", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [238, 238, 238, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [30, 30, 30, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...a8e2-4e5e-4b06-abff-4de6b16313bb/files", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "⦿ UI", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/patch-input-streaming.frame.json b/packages/lab/catalog/public/captures/opencode/patch-input-streaming.frame.json deleted file mode 100644 index c9aff9de699..00000000000 --- a/packages/lab/catalog/public/captures/opencode/patch-input-streaming.frame.json +++ /dev/null @@ -1,481 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [47, 47, 47, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [250, 179, 133, 255], "bg": [42, 42, 42, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [41, 41, 41, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [238, 238, 238, 255], "bg": [41, 41, 41, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [41, 41, 41, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Change fixture.txt from before to after.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 40 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 71 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "⠸", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "Patching", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 101 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [238, 238, 238, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [30, 30, 30, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { "text": "⬝⬝", "fg": [59, 98, 151, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "■", "fg": [25, 36, 52, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [33, 50, 75, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [45, 72, 110, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [63, 105, 163, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [97, 162, 231, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "esc ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 4 }, - { "text": "interrupt", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 58 - }, - { "text": "shift+tab ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/patch-success.frame.json b/packages/lab/catalog/public/captures/opencode/patch-success.frame.json deleted file mode 100644 index 3ab635a68eb..00000000000 --- a/packages/lab/catalog/public/captures/opencode/patch-success.frame.json +++ /dev/null @@ -1,509 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [32, 32, 32, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [250, 178, 131, 255], "bg": [32, 32, 32, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [32, 32, 32, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [238, 238, 238, 255], "bg": [32, 32, 32, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [32, 32, 32, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Change fixture.txt from before to after.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 40 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 71 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "← Patched", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-9b5a5ab6-ac5f-4eeb-a801-dca9766779d4/files/fixture.txt", - "fg": [128, 128, 128, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 101 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 143, 143, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": " -", "fg": [226, 106, 117, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [238, 238, 238, 255], "bg": [55, 34, 44, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [55, 34, 44, 255], - "attributes": 0, - "width": 99 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 143, 143, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": " +", "fg": [184, 219, 135, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "after", "fg": [238, 238, 238, 255], "bg": [32, 48, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 100 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": "The fixture was updated.", - "fg": [238, 238, 238, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 24 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 89 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 1.7s", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [238, 238, 238, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [30, 30, 30, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...5ab6-ac5f-4eeb-a801-dca9766779d4/files", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/patch-updated.frame.json b/packages/lab/catalog/public/captures/opencode/patch-updated.frame.json deleted file mode 100644 index 88495ec6fec..00000000000 --- a/packages/lab/catalog/public/captures/opencode/patch-updated.frame.json +++ /dev/null @@ -1,537 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [46, 46, 46, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [250, 180, 135, 255], "bg": [42, 42, 42, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [38, 38, 38, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [238, 238, 238, 255], "bg": [38, 38, 38, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [38, 38, 38, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Create a file, update the fixture, delete the created file, then attempt an invalid patch.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 90 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 21 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "# Created", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-8169a8e2-4e5e-4b06-abff-4de6b16313bb/files/patched.txt", - "fg": [128, 128, 128, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 101 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 143, 143, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": " +", "fg": [184, 219, 135, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { - "text": "created by patch", - "fg": [238, 238, 238, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 16 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 89 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "← Patched", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-8169a8e2-4e5e-4b06-abff-4de6b16313bb/files/fixture.txt", - "fg": [128, 128, 128, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 101 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 143, 143, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": " -", "fg": [226, 106, 117, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [238, 238, 238, 255], "bg": [55, 34, 44, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [55, 34, 44, 255], - "attributes": 0, - "width": 99 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 143, 143, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": " +", "fg": [184, 219, 135, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { - "text": "updated by patch", - "fg": [238, 238, 238, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 16 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 89 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [238, 238, 238, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [30, 30, 30, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { "text": "⬝⬝", "fg": [59, 98, 151, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "■", "fg": [25, 36, 52, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [33, 50, 75, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [45, 72, 110, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [63, 105, 163, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [97, 162, 231, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "esc ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 4 }, - { "text": "interrupt", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 58 - }, - { "text": "shift+tab ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "⦿ UI", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/permission-always-confirmation.frame.json b/packages/lab/catalog/public/captures/opencode/permission-always-confirmation.frame.json deleted file mode 100644 index 8030200501b..00000000000 --- a/packages/lab/catalog/public/captures/opencode/permission-always-confirmation.frame.json +++ /dev/null @@ -1,494 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [42, 42, 42, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [245, 167, 66, 255], "bg": [42, 42, 42, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [42, 42, 42, 255], "attributes": 0, "width": 1 }, - { "text": "O", "fg": [238, 238, 238, 255], "bg": [43, 43, 43, 255], "attributes": 1, "width": 1 }, - { "text": "p", "fg": [238, 238, 238, 255], "bg": [44, 44, 44, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [238, 238, 238, 255], "bg": [45, 45, 45, 255], "attributes": 1, "width": 1 }, - { "text": "n", "fg": [238, 238, 238, 255], "bg": [46, 46, 46, 255], "attributes": 1, "width": 1 }, - { "text": "C", "fg": [238, 238, 238, 255], "bg": [47, 47, 47, 255], "attributes": 1, "width": 1 }, - { "text": "o", "fg": [238, 238, 238, 255], "bg": [48, 48, 48, 255], "attributes": 1, "width": 1 }, - { "text": "d", "fg": [238, 238, 238, 255], "bg": [49, 49, 49, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [238, 238, 238, 255], "bg": [50, 50, 50, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [238, 238, 238, 255], "bg": [51, 51, 51, 255], "attributes": 1, "width": 1 }, - { "text": "D", "fg": [238, 238, 238, 255], "bg": [52, 52, 52, 255], "attributes": 1, "width": 1 }, - { "text": "ri", "fg": [238, 238, 238, 255], "bg": [53, 53, 53, 255], "attributes": 1, "width": 2 }, - { "text": "ve", "fg": [238, 238, 238, 255], "bg": [54, 54, 54, 255], "attributes": 1, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [54, 54, 54, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [53, 53, 53, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [48, 48, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [44, 44, 44, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [42, 42, 42, 255], "attributes": 0, "width": 11 }, - { "text": " + ", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Change fixture.txt from before to after.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 40 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 71 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "⠋", "fg": [245, 167, 66, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "Patching", "fg": [245, 167, 66, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "fixture.txt", "fg": [245, 167, 66, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 89 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "△", "fg": [245, 167, 66, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "Always allow", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 12 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 97 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "This will allow edit until OpenCode is restarted.", - "fg": [128, 128, 128, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 49 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 62 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [250, 178, 131, 255], "attributes": 0, "width": 1 }, - { "text": "Confirm", "fg": [10, 10, 10, 255], "bg": [250, 178, 131, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [250, 178, 131, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "Cancel", "fg": [238, 238, 238, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 68 - }, - { "text": "⇆ ", "fg": [238, 238, 238, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "select", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "enter ", "fg": [238, 238, 238, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 6 }, - { "text": "confirm", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/permission-always-selected.frame.json b/packages/lab/catalog/public/captures/opencode/permission-always-selected.frame.json deleted file mode 100644 index 4829a07a861..00000000000 --- a/packages/lab/catalog/public/captures/opencode/permission-always-selected.frame.json +++ /dev/null @@ -1,543 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [38, 38, 38, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [245, 167, 66, 255], "bg": [38, 38, 38, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [39, 39, 39, 255], "attributes": 0, "width": 1 }, - { "text": "O", "fg": [238, 238, 238, 255], "bg": [39, 39, 39, 255], "attributes": 1, "width": 1 }, - { "text": "p", "fg": [238, 238, 238, 255], "bg": [40, 40, 40, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [238, 238, 238, 255], "bg": [41, 41, 41, 255], "attributes": 1, "width": 1 }, - { "text": "n", "fg": [238, 238, 238, 255], "bg": [42, 42, 42, 255], "attributes": 1, "width": 1 }, - { "text": "C", "fg": [238, 238, 238, 255], "bg": [43, 43, 43, 255], "attributes": 1, "width": 1 }, - { "text": "o", "fg": [238, 238, 238, 255], "bg": [45, 45, 45, 255], "attributes": 1, "width": 1 }, - { "text": "d", "fg": [238, 238, 238, 255], "bg": [46, 46, 46, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [238, 238, 238, 255], "bg": [47, 47, 47, 255], "attributes": 1, "width": 1 }, - { "text": " D", "fg": [238, 238, 238, 255], "bg": [49, 49, 49, 255], "attributes": 1, "width": 2 }, - { "text": "r", "fg": [238, 238, 238, 255], "bg": [50, 50, 50, 255], "attributes": 1, "width": 1 }, - { "text": "ive", "fg": [238, 238, 238, 255], "bg": [51, 51, 51, 255], "attributes": 1, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 51, 51, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [49, 49, 49, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [43, 43, 43, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [39, 39, 39, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [38, 38, 38, 255], "attributes": 0, "width": 11 }, - { "text": " + ", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Change fixture.txt from before to after.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 40 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 71 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "⠋", "fg": [245, 167, 66, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "Patching", "fg": [245, 167, 66, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "fixture.txt", "fg": [245, 167, 66, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 89 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "△", "fg": [245, 167, 66, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": "Permission required", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 90 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "→", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": "Edit private/var/folders/dd/5fz89drs5p9_r0fk7rwqqnbr0000gn/T/opencode-drive/run-9b5a5ab6-ac5f-4eeb-a801-", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 104 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 6 }, - { - "text": "dca9766779d4/files/fixture.txt", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 30 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 143, 143, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": " -", "fg": [226, 106, 117, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [238, 238, 238, 255], "bg": [55, 34, 44, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [55, 34, 44, 255], - "attributes": 0, - "width": 98 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 143, 143, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": " +", "fg": [184, 219, 135, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "after", "fg": [238, 238, 238, 255], "bg": [32, 48, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 99 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 3 }, - { "text": "Allow once", "fg": [238, 238, 238, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [250, 178, 131, 255], "attributes": 0, "width": 1 }, - { "text": "Allow always", "fg": [10, 10, 10, 255], "bg": [250, 178, 131, 255], "attributes": 0, "width": 12 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [250, 178, 131, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "Reject", "fg": [238, 238, 238, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 31 - }, - { "text": "ctrl+f ", "fg": [238, 238, 238, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 7 }, - { "text": "fullscreen", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "⇆ ", "fg": [238, 238, 238, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "select", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "enter ", "fg": [238, 238, 238, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 6 }, - { "text": "confirm", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/permission-fullscreen.frame.json b/packages/lab/catalog/public/captures/opencode/permission-fullscreen.frame.json deleted file mode 100644 index 1273dc32bd8..00000000000 --- a/packages/lab/catalog/public/captures/opencode/permission-fullscreen.frame.json +++ /dev/null @@ -1,556 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [42, 42, 42, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [245, 167, 66, 255], "bg": [42, 42, 42, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [42, 42, 42, 255], "attributes": 0, "width": 1 }, - { "text": "OpenC", "fg": [238, 238, 238, 255], "bg": [42, 42, 42, 255], "attributes": 1, "width": 5 }, - { "text": "ode", "fg": [238, 238, 238, 255], "bg": [43, 43, 43, 255], "attributes": 1, "width": 3 }, - { "text": " ", "fg": [238, 238, 238, 255], "bg": [44, 44, 44, 255], "attributes": 1, "width": 1 }, - { "text": "Dr", "fg": [238, 238, 238, 255], "bg": [45, 45, 45, 255], "attributes": 1, "width": 2 }, - { "text": "i", "fg": [238, 238, 238, 255], "bg": [46, 46, 46, 255], "attributes": 1, "width": 1 }, - { "text": "ve", "fg": [238, 238, 238, 255], "bg": [47, 47, 47, 255], "attributes": 1, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [48, 48, 48, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [47, 47, 47, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 45, 45, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [42, 42, 42, 255], "attributes": 0, "width": 7 }, - { "text": " + ", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "△", "fg": [245, 167, 66, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": "Permission required", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 90 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "→", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": "Edit private/var/folders/dd/5fz89drs5p9_r0fk7rwqqnbr0000gn/T/opencode-drive/run-9b5a5ab6-ac5f-4eeb-a801-", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 104 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 6 }, - { - "text": "dca9766779d4/files/fixture.txt", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 30 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 143, 143, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": " -", "fg": [226, 106, 117, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [238, 238, 238, 255], "bg": [55, 34, 44, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [55, 34, 44, 255], - "attributes": 0, - "width": 98 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 143, 143, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": " +", "fg": [184, 219, 135, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "after", "fg": [238, 238, 238, 255], "bg": [32, 48, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 99 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 3 }, - { "text": "Allow once", "fg": [238, 238, 238, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 3 }, - { "text": "Allow always", "fg": [238, 238, 238, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 12 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [250, 178, 131, 255], "attributes": 0, "width": 1 }, - { "text": "Reject", "fg": [10, 10, 10, 255], "bg": [250, 178, 131, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [250, 178, 131, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 32 - }, - { "text": "ctrl+f ", "fg": [238, 238, 238, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 7 }, - { "text": "minimize", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "⇆ ", "fg": [238, 238, 238, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "select", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "enter ", "fg": [238, 238, 238, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 6 }, - { "text": "confirm", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/permission-prompt.frame.json b/packages/lab/catalog/public/captures/opencode/permission-prompt.frame.json deleted file mode 100644 index afeeb7c0877..00000000000 --- a/packages/lab/catalog/public/captures/opencode/permission-prompt.frame.json +++ /dev/null @@ -1,542 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [35, 35, 35, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [245, 167, 66, 255], "bg": [35, 35, 35, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [36, 36, 36, 255], "attributes": 0, "width": 1 }, - { "text": "O", "fg": [238, 238, 238, 255], "bg": [36, 36, 36, 255], "attributes": 1, "width": 1 }, - { "text": "p", "fg": [238, 238, 238, 255], "bg": [37, 37, 37, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [238, 238, 238, 255], "bg": [38, 38, 38, 255], "attributes": 1, "width": 1 }, - { "text": "n", "fg": [238, 238, 238, 255], "bg": [39, 39, 39, 255], "attributes": 1, "width": 1 }, - { "text": "C", "fg": [238, 238, 238, 255], "bg": [41, 41, 41, 255], "attributes": 1, "width": 1 }, - { "text": "o", "fg": [238, 238, 238, 255], "bg": [42, 42, 42, 255], "attributes": 1, "width": 1 }, - { "text": "d", "fg": [238, 238, 238, 255], "bg": [43, 43, 43, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [238, 238, 238, 255], "bg": [45, 45, 45, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [238, 238, 238, 255], "bg": [46, 46, 46, 255], "attributes": 1, "width": 1 }, - { "text": "Dr", "fg": [238, 238, 238, 255], "bg": [47, 47, 47, 255], "attributes": 1, "width": 2 }, - { "text": "ive", "fg": [238, 238, 238, 255], "bg": [48, 48, 48, 255], "attributes": 1, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [48, 48, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 45, 45, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [39, 39, 39, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [35, 35, 35, 255], "attributes": 0, "width": 12 }, - { "text": " + ", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Change fixture.txt from before to after.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 40 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 71 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "⠋", "fg": [245, 167, 66, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "Patching", "fg": [245, 167, 66, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "fixture.txt", "fg": [245, 167, 66, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 89 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "△", "fg": [245, 167, 66, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": "Permission required", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 90 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "→", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": "Edit private/var/folders/dd/5fz89drs5p9_r0fk7rwqqnbr0000gn/T/opencode-drive/run-9b5a5ab6-ac5f-4eeb-a801-", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 104 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 6 }, - { - "text": "dca9766779d4/files/fixture.txt", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 30 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 143, 143, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": " -", "fg": [226, 106, 117, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [238, 238, 238, 255], "bg": [55, 34, 44, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [55, 34, 44, 255], - "attributes": 0, - "width": 97 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 143, 143, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": " +", "fg": [184, 219, 135, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "after", "fg": [238, 238, 238, 255], "bg": [32, 48, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 98 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [250, 178, 131, 255], "attributes": 0, "width": 1 }, - { "text": "Allow once", "fg": [10, 10, 10, 255], "bg": [250, 178, 131, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [250, 178, 131, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "Allow always", "fg": [238, 238, 238, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 12 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 3 }, - { "text": "Reject", "fg": [238, 238, 238, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 31 - }, - { "text": "ctrl+f ", "fg": [238, 238, 238, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 7 }, - { "text": "fullscreen", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "⇆ ", "fg": [238, 238, 238, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "select", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "enter ", "fg": [238, 238, 238, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 6 }, - { "text": "confirm", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/permission-reject-selected.frame.json b/packages/lab/catalog/public/captures/opencode/permission-reject-selected.frame.json deleted file mode 100644 index 86594c13e10..00000000000 --- a/packages/lab/catalog/public/captures/opencode/permission-reject-selected.frame.json +++ /dev/null @@ -1,543 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [43, 43, 43, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [245, 167, 66, 255], "bg": [43, 43, 43, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [43, 43, 43, 255], "attributes": 0, "width": 1 }, - { "text": "O", "fg": [238, 238, 238, 255], "bg": [43, 43, 43, 255], "attributes": 1, "width": 1 }, - { "text": "p", "fg": [238, 238, 238, 255], "bg": [44, 44, 44, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [238, 238, 238, 255], "bg": [45, 45, 45, 255], "attributes": 1, "width": 1 }, - { "text": "n", "fg": [238, 238, 238, 255], "bg": [46, 46, 46, 255], "attributes": 1, "width": 1 }, - { "text": "C", "fg": [238, 238, 238, 255], "bg": [47, 47, 47, 255], "attributes": 1, "width": 1 }, - { "text": "o", "fg": [238, 238, 238, 255], "bg": [48, 48, 48, 255], "attributes": 1, "width": 1 }, - { "text": "d", "fg": [238, 238, 238, 255], "bg": [49, 49, 49, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [238, 238, 238, 255], "bg": [51, 51, 51, 255], "attributes": 1, "width": 1 }, - { "text": " D", "fg": [238, 238, 238, 255], "bg": [52, 52, 52, 255], "attributes": 1, "width": 2 }, - { "text": "r", "fg": [238, 238, 238, 255], "bg": [53, 53, 53, 255], "attributes": 1, "width": 1 }, - { "text": "ive", "fg": [238, 238, 238, 255], "bg": [54, 54, 54, 255], "attributes": 1, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [55, 55, 55, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [53, 53, 53, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [49, 49, 49, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [44, 44, 44, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [43, 43, 43, 255], "attributes": 0, "width": 10 }, - { "text": " + ", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Change fixture.txt from before to after.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 40 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 71 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "⠋", "fg": [245, 167, 66, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "Patching", "fg": [245, 167, 66, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "fixture.txt", "fg": [245, 167, 66, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 89 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "△", "fg": [245, 167, 66, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": "Permission required", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 90 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "→", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": "Edit private/var/folders/dd/5fz89drs5p9_r0fk7rwqqnbr0000gn/T/opencode-drive/run-9b5a5ab6-ac5f-4eeb-a801-", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 104 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 6 }, - { - "text": "dca9766779d4/files/fixture.txt", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 30 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 143, 143, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": " -", "fg": [226, 106, 117, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [238, 238, 238, 255], "bg": [55, 34, 44, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [55, 34, 44, 255], - "attributes": 0, - "width": 98 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 143, 143, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": " +", "fg": [184, 219, 135, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "after", "fg": [238, 238, 238, 255], "bg": [32, 48, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 99 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 3 }, - { "text": "Allow once", "fg": [238, 238, 238, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 3 }, - { "text": "Allow always", "fg": [238, 238, 238, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 12 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [250, 178, 131, 255], "attributes": 0, "width": 1 }, - { "text": "Reject", "fg": [10, 10, 10, 255], "bg": [250, 178, 131, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [250, 178, 131, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 30 - }, - { "text": "ctrl+f ", "fg": [238, 238, 238, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 7 }, - { "text": "fullscreen", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "⇆ ", "fg": [238, 238, 238, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "select", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "enter ", "fg": [238, 238, 238, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 6 }, - { "text": "confirm", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/question-awaiting-form.frame.json b/packages/lab/catalog/public/captures/opencode/question-awaiting-form.frame.json deleted file mode 100644 index 4c8058cd259..00000000000 --- a/packages/lab/catalog/public/captures/opencode/question-awaiting-form.frame.json +++ /dev/null @@ -1,539 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [43, 43, 43, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [245, 167, 66, 255], "bg": [43, 43, 43, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [43, 43, 43, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [238, 238, 238, 255], "bg": [43, 43, 43, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [43, 43, 43, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Ask me which runtime and validation mode to use.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 48 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 63 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "Asked 2 questions", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 17 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 94 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Questions", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 102 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Runtime", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": "Validation", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": "Confirm", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 81 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Which runtime should the catalog fixture use?", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 45 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 66 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "1.", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "Bun", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 105 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { - "text": "Use the repository's configured runtime.", - "fg": [128, 128, 128, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 40 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 68 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "2.", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "Node", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 104 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { - "text": "Use the Node.js compatibility runtime.", - "fg": [128, 128, 128, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 38 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 70 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "3.", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": "Type your own answer", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 20 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "⇆ ", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "tab", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "↑↓ ", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": "select", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "enter ", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 6 }, - { "text": "confirm", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "esc ", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "dismiss", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 67 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/question-denied.frame.json b/packages/lab/catalog/public/captures/opencode/question-denied.frame.json deleted file mode 100644 index 85781e09684..00000000000 --- a/packages/lab/catalog/public/captures/opencode/question-denied.frame.json +++ /dev/null @@ -1,582 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [245, 167, 66, 255], "bg": [30, 30, 30, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [238, 238, 238, 255], "bg": [30, 30, 30, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [17, 17, 17, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [17, 17, 17, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Which runtime should the catalog fixture use?", - "fg": [128, 128, 128, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 45 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 66 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Bun", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 108 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Which validation should run?", - "fg": [128, 128, 128, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 83 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Focused", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 104 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": "The catalog answers were submitted.", - "fg": [238, 238, 238, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 35 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 78 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 8.3s", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Ask one more runtime question that I will dismiss.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 50 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 61 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "Asked 1 question", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 16 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 95 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Questions", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 102 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Which runtime should the catalog fixture use?", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 45 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 66 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "1.", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "Bun", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 105 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { - "text": "Use the repository's configured runtime.", - "fg": [128, 128, 128, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 40 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 68 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "2.", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "Node", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 104 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { - "text": "Use the Node.js compatibility runtime.", - "fg": [128, 128, 128, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 38 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 70 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "3.", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": "Type your own answer", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 20 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "↑↓ ", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": "select", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "enter ", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 6 }, - { "text": "submit", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "esc ", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "dismiss", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 75 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/question-input-streaming.frame.json b/packages/lab/catalog/public/captures/opencode/question-input-streaming.frame.json deleted file mode 100644 index 8c5c648f77e..00000000000 --- a/packages/lab/catalog/public/captures/opencode/question-input-streaming.frame.json +++ /dev/null @@ -1,478 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [46, 46, 46, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [250, 179, 132, 255], "bg": [42, 42, 42, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [41, 41, 41, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [238, 238, 238, 255], "bg": [41, 41, 41, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [41, 41, 41, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Ask me which runtime and validation mode to use.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 48 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 63 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "⠸", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "Asking questions...", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 92 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [238, 238, 238, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [30, 30, 30, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { "text": "⬝⬝", "fg": [59, 98, 151, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "■", "fg": [25, 36, 52, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [33, 50, 75, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [45, 72, 110, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [63, 105, 163, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [97, 162, 231, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "esc ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 4 }, - { "text": "interrupt", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 58 - }, - { "text": "shift+tab ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/question-prompt.frame.json b/packages/lab/catalog/public/captures/opencode/question-prompt.frame.json deleted file mode 100644 index 8bcab636080..00000000000 --- a/packages/lab/catalog/public/captures/opencode/question-prompt.frame.json +++ /dev/null @@ -1,586 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [43, 43, 43, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [245, 167, 66, 255], "bg": [43, 43, 43, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [43, 43, 43, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [238, 238, 238, 255], "bg": [43, 43, 43, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [43, 43, 43, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "← Patched", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-9b5a5ab6-ac5f-4eeb-a801-dca9766779d4/files/fixture.txt", - "fg": [128, 128, 128, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 101 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 143, 143, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": " -", "fg": [226, 106, 117, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [238, 238, 238, 255], "bg": [55, 34, 44, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [55, 34, 44, 255], - "attributes": 0, - "width": 99 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 143, 143, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": " +", "fg": [184, 219, 135, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "after", "fg": [238, 238, 238, 255], "bg": [32, 48, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 100 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": "The fixture was updated.", - "fg": [238, 238, 238, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 24 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 89 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 1.7s", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Ask me about the fixture direction.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 35 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "Asked 1 question", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 16 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 95 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Questions", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 102 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Which direction should the fixture take?", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 40 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 71 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "1.", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": "Keep it minimal (Recommended)", - "fg": [250, 178, 131, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { - "text": "Small deterministic fixture", - "fg": [128, 128, 128, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 27 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 81 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "2.", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": "Expand coverage", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 93 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { - "text": "Add more scripted states", - "fg": [128, 128, 128, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 24 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 84 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "3.", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": "Type your own answer", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 20 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "↑↓ ", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": "select", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "enter ", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 6 }, - { "text": "submit", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "esc ", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "dismiss", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 75 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/question-review.frame.json b/packages/lab/catalog/public/captures/opencode/question-review.frame.json deleted file mode 100644 index f5a17fa3b16..00000000000 --- a/packages/lab/catalog/public/captures/opencode/question-review.frame.json +++ /dev/null @@ -1,498 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [43, 43, 43, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [245, 167, 66, 255], "bg": [43, 43, 43, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [43, 43, 43, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [238, 238, 238, 255], "bg": [43, 43, 43, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [43, 43, 43, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Ask me which runtime and validation mode to use.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 48 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 63 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "Asked 2 questions", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 17 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 94 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Questions", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 102 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Runtime", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": "Validation", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": "Confirm", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 81 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Review", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 105 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Runtime:", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "Bun", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 99 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Validation:", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "Focused", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 92 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "⇆ ", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "tab", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "↑↓ ", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": "scroll", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "enter ", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 6 }, - { "text": "submit", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "esc ", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "dismiss", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 68 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/question-succeeded.frame.json b/packages/lab/catalog/public/captures/opencode/question-succeeded.frame.json deleted file mode 100644 index a0d5c9eddfb..00000000000 --- a/packages/lab/catalog/public/captures/opencode/question-succeeded.frame.json +++ /dev/null @@ -1,525 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [42, 42, 42, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [250, 178, 131, 255], "bg": [42, 42, 42, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [42, 42, 42, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [238, 238, 238, 255], "bg": [42, 42, 42, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [42, 42, 42, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Ask me which runtime and validation mode to use.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 48 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 63 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "# Questions", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 100 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Which runtime should the catalog fixture use?", - "fg": [128, 128, 128, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 45 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 66 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Bun", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 108 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Which validation should run?", - "fg": [128, 128, 128, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 83 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Focused", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 104 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": "The catalog answers were submitted.", - "fg": [238, 238, 238, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 35 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 78 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 8.3s", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [238, 238, 238, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [30, 30, 30, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...41c2-176e-4516-ad01-cc0342699108/files", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/read-denied.frame.json b/packages/lab/catalog/public/captures/opencode/read-denied.frame.json deleted file mode 100644 index 06b7d73cabf..00000000000 --- a/packages/lab/catalog/public/captures/opencode/read-denied.frame.json +++ /dev/null @@ -1,575 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [31, 31, 31, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [245, 167, 66, 255], "bg": [31, 31, 31, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [31, 31, 31, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [238, 238, 238, 255], "bg": [31, 31, 31, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [31, 31, 31, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [95, 95, 95, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "Explored", "fg": [95, 95, 95, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "—", "fg": [95, 95, 95, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [95, 95, 95, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "read", "fg": [95, 95, 95, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 94 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": "The fixture read succeeded.", - "fg": [238, 238, 238, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 27 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 86 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 983ms", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Now try to read a missing file.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 31 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 80 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "Explored — 1 read", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 17 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 94 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": "The missing-file read failed as expected.", - "fg": [238, 238, 238, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 41 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 72 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 88ms", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Now read the ledger file.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 86 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "⠋", "fg": [245, 167, 66, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "Read src/ledger.ts", - "fg": [245, 167, 66, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 93 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "△", "fg": [245, 167, 66, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": "Permission required", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 90 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "→", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": "Read src/ledger.ts", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 89 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Path: src/ledger.ts", - "fg": [128, 128, 128, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 92 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [250, 178, 131, 255], "attributes": 0, "width": 1 }, - { "text": "Allow once", "fg": [10, 10, 10, 255], "bg": [250, 178, 131, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [250, 178, 131, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "Allow always", "fg": [238, 238, 238, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 12 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 3 }, - { "text": "Reject", "fg": [238, 238, 238, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 31 - }, - { "text": "ctrl+f ", "fg": [238, 238, 238, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 7 }, - { "text": "fullscreen", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "⇆ ", "fg": [238, 238, 238, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "select", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "enter ", "fg": [238, 238, 238, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 6 }, - { "text": "confirm", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/read-input-streaming.frame.json b/packages/lab/catalog/public/captures/opencode/read-input-streaming.frame.json deleted file mode 100644 index 90890206260..00000000000 --- a/packages/lab/catalog/public/captures/opencode/read-input-streaming.frame.json +++ /dev/null @@ -1,478 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [43, 43, 43, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [250, 178, 131, 255], "bg": [43, 43, 43, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [43, 43, 43, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [238, 238, 238, 255], "bg": [43, 43, 43, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [43, 43, 43, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Read the fixture file.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 22 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 89 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "⠹", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "Exploring — 1 read", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 93 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [238, 238, 238, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [30, 30, 30, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { "text": "■", "fg": [25, 36, 52, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [33, 50, 75, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [45, 72, 110, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [63, 105, 163, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [97, 162, 231, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "⬝⬝", "fg": [49, 80, 122, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "esc ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 4 }, - { "text": "interrupt", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 58 - }, - { "text": "shift+tab ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/read-permission.frame.json b/packages/lab/catalog/public/captures/opencode/read-permission.frame.json deleted file mode 100644 index b0fd75e9c41..00000000000 --- a/packages/lab/catalog/public/captures/opencode/read-permission.frame.json +++ /dev/null @@ -1,509 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [37, 37, 37, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [245, 167, 66, 255], "bg": [38, 38, 38, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [40, 40, 40, 255], "attributes": 0, "width": 1 }, - { "text": "O", "fg": [238, 238, 238, 255], "bg": [41, 41, 41, 255], "attributes": 1, "width": 1 }, - { "text": "pe", "fg": [238, 238, 238, 255], "bg": [42, 42, 42, 255], "attributes": 1, "width": 2 }, - { "text": "nCod", "fg": [238, 238, 238, 255], "bg": [43, 43, 43, 255], "attributes": 1, "width": 4 }, - { "text": "e", "fg": [238, 238, 238, 255], "bg": [40, 40, 40, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [238, 238, 238, 255], "bg": [34, 34, 34, 255], "attributes": 1, "width": 1 }, - { "text": "Drive", "fg": [238, 238, 238, 255], "bg": [30, 30, 30, 255], "attributes": 1, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Read the fixture file.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 22 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 89 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "⠋", "fg": [245, 167, 66, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "Read fixture.txt", - "fg": [245, 167, 66, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 16 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 95 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "△", "fg": [245, 167, 66, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": "Permission required", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 90 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "→", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": "Read fixture.txt", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 16 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 91 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Path: fixture.txt", - "fg": [128, 128, 128, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 17 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 94 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [250, 178, 131, 255], "attributes": 0, "width": 1 }, - { "text": "Allow once", "fg": [10, 10, 10, 255], "bg": [250, 178, 131, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [250, 178, 131, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "Allow always", "fg": [238, 238, 238, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 12 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 3 }, - { "text": "Reject", "fg": [238, 238, 238, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 31 - }, - { "text": "ctrl+f ", "fg": [238, 238, 238, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 7 }, - { "text": "fullscreen", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "⇆ ", "fg": [238, 238, 238, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "select", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "enter ", "fg": [238, 238, 238, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 6 }, - { "text": "confirm", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/read-succeeded.frame.json b/packages/lab/catalog/public/captures/opencode/read-succeeded.frame.json deleted file mode 100644 index 217ab7ff73e..00000000000 --- a/packages/lab/catalog/public/captures/opencode/read-succeeded.frame.json +++ /dev/null @@ -1,486 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [43, 43, 43, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [250, 178, 131, 255], "bg": [43, 43, 43, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [43, 43, 43, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [238, 238, 238, 255], "bg": [43, 43, 43, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [43, 43, 43, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Read the fixture file.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 22 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 89 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "Explored — 1 read", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 17 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 94 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": "The fixture read succeeded.", - "fg": [238, 238, 238, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 27 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 86 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 983ms", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [238, 238, 238, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [30, 30, 30, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...0883-7eb7-4b4b-8607-12de47209aac/files", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/session-export.frame.json b/packages/lab/catalog/public/captures/opencode/session-export.frame.json deleted file mode 100644 index d7e55914236..00000000000 --- a/packages/lab/catalog/public/captures/opencode/session-export.frame.json +++ /dev/null @@ -1,647 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [103, 73, 54, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "Drive", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 84 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [8, 8, 8, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Change", "fg": [98, 98, 98, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "fixture.txt", "fg": [98, 98, 98, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 11 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "from", "fg": [98, 98, 98, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [98, 98, 98, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "to", "fg": [98, 98, 98, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "after.", "fg": [98, 98, 98, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [8, 8, 8, 255], - "attributes": 0, - "width": 71 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [8, 8, 8, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [4, 4, 4, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [8, 8, 8, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [4, 4, 4, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "←", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "Patched", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-9b5a5ab6-ac5f-4eeb-a801-dca9766779d4/files/fixture.txt", - "fg": [53, 53, 53, 255], - "bg": [8, 8, 8, 255], - "attributes": 0, - "width": 101 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [4, 4, 4, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [8, 8, 8, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [4, 4, 4, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [59, 59, 59, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": "-", "fg": [93, 44, 48, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [98, 98, 98, 255], "bg": [23, 14, 18, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [23, 14, 18, 255], "attributes": 0, "width": 12 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [23, 14, 18, 255], - "attributes": 0, - "width": 27 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [4, 4, 4, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [59, 59, 59, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [76, 90, 56, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": "after", "fg": [98, 98, 98, 255], "bg": [13, 20, 24, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [13, 20, 24, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Export session", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 39 - }, - { "text": "esc", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [13, 20, 24, 255], - "attributes": 0, - "width": 27 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [4, 4, 4, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [8, 8, 8, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [8, 8, 8, 255], - "attributes": 0, - "width": 27 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Export as:", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "◉ Markdown", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": "○ JSON", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 27 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 5 }, - { "text": "The", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "fixture", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "was", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "updated.", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "[x]", "fg": [250, 178, 131, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": "Include thinking", - "fg": [250, 178, 131, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 16 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 38 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 31 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 4 }, - { "text": "Copy", "fg": [238, 238, 238, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": "Export", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [38, 64, 101, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [12, 12, 12, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...5ab6-ac5f-4eeb-a801-dca9766779d4/files", - "fg": [53, 53, 53, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "agents", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "commands", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [52, 89, 59, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "○", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [8, 8, 8, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/session-fork.frame.json b/packages/lab/catalog/public/captures/opencode/session-fork.frame.json deleted file mode 100644 index 5a90b2b9722..00000000000 --- a/packages/lab/catalog/public/captures/opencode/session-fork.frame.json +++ /dev/null @@ -1,550 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [103, 73, 54, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "Drive", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 84 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [8, 8, 8, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Change", "fg": [98, 98, 98, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "fixture.txt", "fg": [98, 98, 98, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 11 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "from", "fg": [98, 98, 98, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [98, 98, 98, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "to", "fg": [98, 98, 98, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "after.", "fg": [98, 98, 98, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [8, 8, 8, 255], - "attributes": 0, - "width": 71 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [8, 8, 8, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [4, 4, 4, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [8, 8, 8, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [4, 4, 4, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "←", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "Patched", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-9b5a5ab6-ac5f-4eeb-a801-dca9766779d4/files/fixture.txt", - "fg": [53, 53, 53, 255], - "bg": [8, 8, 8, 255], - "attributes": 0, - "width": 101 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [4, 4, 4, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [8, 8, 8, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [4, 4, 4, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [59, 59, 59, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": "-", "fg": [93, 44, 48, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": "befo", "fg": [98, 98, 98, 255], "bg": [23, 14, 18, 255], "attributes": 0, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [23, 14, 18, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [4, 4, 4, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [59, 59, 59, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [76, 90, 56, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": "afte", "fg": [98, 98, 98, 255], "bg": [13, 20, 24, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "Fork session", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 1, "width": 12 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 65 - }, - { "text": "esc", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [13, 20, 24, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [4, 4, 4, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 12 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "Search", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 78 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 5 }, - { "text": "The", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "fixtur", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [250, 178, 131, 255], "attributes": 0, "width": 1 }, - { "text": "●", "fg": [10, 10, 10, 255], "bg": [250, 178, 131, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [250, 178, 131, 255], "attributes": 0, "width": 1 }, - { "text": "Full session", "fg": [10, 10, 10, 255], "bg": [250, 178, 131, 255], "attributes": 1, "width": 12 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [250, 178, 131, 255], - "attributes": 0, - "width": 71 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "Si", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { - "text": "Change fixture.txt from before to after.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 40 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 33 - }, - { "text": "3:26 PM", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [38, 64, 101, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [12, 12, 12, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...5ab6-ac5f-4eeb-a801-dca9766779d4/files", - "fg": [53, 53, 53, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "agents", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "commands", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [52, 89, 59, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "○", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [8, 8, 8, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/session-picker-populated.frame.json b/packages/lab/catalog/public/captures/opencode/session-picker-populated.frame.json deleted file mode 100644 index 011761922af..00000000000 --- a/packages/lab/catalog/public/captures/opencode/session-picker-populated.frame.json +++ /dev/null @@ -1,608 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [13, 13, 13, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [103, 73, 54, 255], "bg": [13, 13, 13, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [13, 13, 13, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode", "fg": [98, 98, 98, 255], "bg": [13, 13, 13, 255], "attributes": 1, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [13, 13, 13, 255], "attributes": 0, "width": 1 }, - { "text": "DriveCatalog", "fg": [98, 98, 98, 255], "bg": [13, 13, 13, 255], "attributes": 1, "width": 12 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [13, 13, 13, 255], "attributes": 0, "width": 1 }, - { "text": "cap", "fg": [98, 98, 98, 255], "bg": [13, 13, 13, 255], "attributes": 1, "width": 3 }, - { "text": "t", "fg": [81, 81, 81, 255], "bg": [13, 13, 13, 255], "attributes": 1, "width": 1 }, - { "text": "u", "fg": [60, 60, 60, 255], "bg": [13, 13, 13, 255], "attributes": 1, "width": 1 }, - { "text": "r", "fg": [40, 40, 40, 255], "bg": [13, 13, 13, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [19, 19, 19, 255], "bg": [13, 13, 13, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 84 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [4, 4, 4, 255], "bg": [7, 7, 7, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [7, 7, 7, 255], "attributes": 0, "width": 2 }, - { "text": "←", "fg": [39, 39, 39, 255], "bg": [7, 7, 7, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [7, 7, 7, 255], "attributes": 0, "width": 1 }, - { "text": "Patched", "fg": [39, 39, 39, 255], "bg": [7, 7, 7, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [7, 7, 7, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-9b5a5ab6-ac5f-4eeb-a801-dca9766779d4/files/fixture.txt", - "fg": [39, 39, 39, 255], - "bg": [7, 7, 7, 255], - "attributes": 0, - "width": 101 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [4, 4, 4, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [8, 8, 8, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [4, 4, 4, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [59, 59, 59, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": "-", "fg": [93, 44, 48, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [98, 98, 98, 255], "bg": [23, 14, 18, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [23, 14, 18, 255], - "attributes": 0, - "width": 99 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [4, 4, 4, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [59, 59, 59, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [76, 90, 56, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": "after", "fg": [98, 98, 98, 255], "bg": [13, 20, 24, 255], "attributes": 0, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [13, 20, 24, 255], - "attributes": 0, - "width": 100 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [4, 4, 4, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [8, 8, 8, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 5 }, - { "text": "The", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "fixture", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "was", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "updated.", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 89 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "Si", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "Sessions", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 1, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 69 - }, - { "text": "esc", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 12 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Ask", "fg": [98, 98, 98, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "me", "fg": [98, 98, 98, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "abo", "fg": [98, 98, 98, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "Search", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 78 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 12 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "Today", "fg": [157, 124, 216, 255], "bg": [20, 20, 20, 255], "attributes": 1, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [4, 4, 4, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 12 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [250, 178, 131, 255], "attributes": 0, "width": 1 }, - { "text": "●", "fg": [10, 10, 10, 255], "bg": [250, 178, 131, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [250, 178, 131, 255], "attributes": 0, "width": 1 }, - { - "text": "OpenCode DriveCatalog capture session", - "fg": [10, 10, 10, 255], - "bg": [250, 178, 131, 255], - "attributes": 1, - "width": 37 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [250, 178, 131, 255], - "attributes": 0, - "width": 46 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [4, 4, 4, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "#", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "Question", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [4, 4, 4, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 12 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "delete", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 6 }, - { "text": " ctrl+d", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "rename", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 6 }, - { "text": " ctrl+r", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 35 - }, - { "text": "all projects", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 1, "width": 12 }, - { "text": " ", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "ctrl+a", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [4, 4, 4, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Which", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "dire", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [4, 4, 4, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Keep", "fg": [98, 98, 98, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "it", "fg": [98, 98, 98, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "minimal", "fg": [98, 98, 98, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "(Recommended)", "fg": [98, 98, 98, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 13 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [8, 8, 8, 255], - "attributes": 0, - "width": 82 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [4, 4, 4, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [8, 8, 8, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 5 }, - { "text": "Keeping", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "the", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "fixture", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "minimal.", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 85 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "209ms", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [38, 64, 101, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [12, 12, 12, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...5ab6-ac5f-4eeb-a801-dca9766779d4/files", - "fg": [53, 53, 53, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "agents", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "commands", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [52, 89, 59, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "○", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [8, 8, 8, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/session-picker.frame.json b/packages/lab/catalog/public/captures/opencode/session-picker.frame.json deleted file mode 100644 index e25abc1bc96..00000000000 --- a/packages/lab/catalog/public/captures/opencode/session-picker.frame.json +++ /dev/null @@ -1,578 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [103, 73, 54, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "New", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "session", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 86 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "Sessions", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 1, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 69 - }, - { "text": "esc", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "Search", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 78 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { - "text": "No sessions available", - "fg": [128, 128, 128, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 21 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 63 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "delete ctrl+d", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "rename ctrl+r", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 13 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 35 - }, - { "text": "all projects", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 1, "width": 12 }, - { "text": " ", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "ctrl+a", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 2 }, - { "text": "Ask", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "anything...", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 11 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "\"What", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "is", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "the", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "tech", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "stack", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "of", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "this", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "project?\"", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [38, 64, 101, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 38 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "╹", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [12, 12, 12, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { - "text": "/private/var/folde...-dca9766779d4/files", - "fg": [53, 53, 53, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 40 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "agents", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "commands", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 111 - }, - { "text": "local", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [52, 89, 59, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "○", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [8, 8, 8, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/session-rename.frame.json b/packages/lab/catalog/public/captures/opencode/session-rename.frame.json deleted file mode 100644 index 5c1d66d16ac..00000000000 --- a/packages/lab/catalog/public/captures/opencode/session-rename.frame.json +++ /dev/null @@ -1,602 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [13, 13, 13, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [103, 73, 54, 255], "bg": [13, 13, 13, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [13, 13, 13, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode", "fg": [98, 98, 98, 255], "bg": [13, 13, 13, 255], "attributes": 1, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [13, 13, 13, 255], "attributes": 0, "width": 1 }, - { "text": "Drive", "fg": [98, 98, 98, 255], "bg": [13, 13, 13, 255], "attributes": 1, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [13, 13, 13, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 84 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [8, 8, 8, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Change", "fg": [98, 98, 98, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "fixture.txt", "fg": [98, 98, 98, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 11 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "from", "fg": [98, 98, 98, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [98, 98, 98, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "to", "fg": [98, 98, 98, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "after.", "fg": [98, 98, 98, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [8, 8, 8, 255], - "attributes": 0, - "width": 71 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [8, 8, 8, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [4, 4, 4, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [8, 8, 8, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [4, 4, 4, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "←", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "Patched", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-9b5a5ab6-ac5f-4eeb-a801-dca9766779d4/files/fixture.txt", - "fg": [53, 53, 53, 255], - "bg": [8, 8, 8, 255], - "attributes": 0, - "width": 101 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [4, 4, 4, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [8, 8, 8, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [4, 4, 4, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [59, 59, 59, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": "-", "fg": [93, 44, 48, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [98, 98, 98, 255], "bg": [23, 14, 18, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [23, 14, 18, 255], "attributes": 0, "width": 12 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [23, 14, 18, 255], - "attributes": 0, - "width": 27 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [4, 4, 4, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [59, 59, 59, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [76, 90, 56, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": "after", "fg": [98, 98, 98, 255], "bg": [13, 20, 24, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [13, 20, 24, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Rename session", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 39 - }, - { "text": "esc", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [13, 20, 24, 255], - "attributes": 0, - "width": 27 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [4, 4, 4, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [8, 8, 8, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [8, 8, 8, 255], - "attributes": 0, - "width": 27 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "OpenCode Drive", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 44 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 5 }, - { "text": "The", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "fixture", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "was", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "updated.", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "enter ", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 6 }, - { "text": "submit", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 46 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [38, 64, 101, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [12, 12, 12, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...5ab6-ac5f-4eeb-a801-dca9766779d4/files", - "fg": [53, 53, 53, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "agents", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "commands", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [52, 89, 59, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "○", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [8, 8, 8, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/session-tabs-idle.frame.json b/packages/lab/catalog/public/captures/opencode/session-tabs-idle.frame.json deleted file mode 100644 index eab981c85a4..00000000000 --- a/packages/lab/catalog/public/captures/opencode/session-tabs-idle.frame.json +++ /dev/null @@ -1,482 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 44, 45, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [248, 187, 147, 255], "bg": [46, 45, 46, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [46, 45, 46, 255], "attributes": 0, "width": 1 }, - { "text": "Op", "fg": [238, 238, 238, 255], "bg": [46, 45, 46, 255], "attributes": 1, "width": 2 }, - { "text": "e", "fg": [238, 238, 238, 255], "bg": [42, 41, 42, 255], "attributes": 1, "width": 1 }, - { "text": "n", "fg": [238, 238, 238, 255], "bg": [36, 35, 36, 255], "attributes": 1, "width": 1 }, - { "text": "Code Drive", "fg": [238, 238, 238, 255], "bg": [33, 32, 33, 255], "attributes": 1, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [33, 32, 33, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 33, 34, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [35, 34, 35, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [36, 35, 36, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [37, 36, 37, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [39, 38, 39, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [40, 39, 40, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [41, 40, 41, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [43, 42, 43, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [44, 43, 44, 255], "attributes": 0, "width": 1 }, - { "text": " + ", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Audit the current tab state.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 83 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": "Working on a tab audit.Tab audit complete.", - "fg": [238, 238, 238, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 42 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 71 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 2.1s", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [238, 238, 238, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [30, 30, 30, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...c64b-92fd-4fe6-8695-3e3425557695/files", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "⦿ UI", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/session-tabs-running.frame.json b/packages/lab/catalog/public/captures/opencode/session-tabs-running.frame.json deleted file mode 100644 index fa8df981fee..00000000000 --- a/packages/lab/catalog/public/captures/opencode/session-tabs-running.frame.json +++ /dev/null @@ -1,474 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [42, 42, 42, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [250, 178, 131, 255], "bg": [42, 42, 42, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [42, 42, 42, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [238, 238, 238, 255], "bg": [42, 42, 42, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [42, 42, 42, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Audit the current tab state.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 83 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": "Working on a tab audit.", - "fg": [238, 238, 238, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 23 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 90 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [238, 238, 238, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [30, 30, 30, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { "text": "■", "fg": [45, 72, 110, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [63, 105, 163, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [97, 162, 231, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "⬝⬝⬝⬝", "fg": [40, 63, 95, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "esc ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 4 }, - { "text": "interrupt", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 58 - }, - { "text": "shift+tab ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/shell-execute-failed.frame.json b/packages/lab/catalog/public/captures/opencode/shell-execute-failed.frame.json deleted file mode 100644 index 44bf1aa99d6..00000000000 --- a/packages/lab/catalog/public/captures/opencode/shell-execute-failed.frame.json +++ /dev/null @@ -1,557 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [37, 37, 37, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [250, 178, 131, 255], "bg": [37, 37, 37, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [37, 37, 37, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode ", "fg": [238, 238, 238, 255], "bg": [37, 37, 37, 255], "attributes": 1, "width": 9 }, - { "text": "Dr", "fg": [238, 238, 238, 255], "bg": [38, 38, 38, 255], "attributes": 1, "width": 2 }, - { "text": "i", "fg": [238, 238, 238, 255], "bg": [39, 39, 39, 255], "attributes": 1, "width": 1 }, - { "text": "v", "fg": [238, 238, 238, 255], "bg": [40, 40, 40, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [238, 238, 238, 255], "bg": [41, 41, 41, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [43, 43, 43, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [44, 44, 44, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 45, 45, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [47, 47, 47, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [48, 48, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [49, 49, 49, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [50, 50, 50, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [48, 48, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [42, 42, 42, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [38, 38, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [37, 37, 37, 255], "attributes": 0, "width": 1 }, - { "text": " + ", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "+", "fg": [151, 104, 44, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "Thought · 1.8s", "fg": [151, 104, 44, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 97 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "$", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": "printf catalog-shell-success", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 81 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Tool result declared output without an output schema", - "fg": [224, 108, 117, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 52 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 59 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": "The successful shell command completed.", - "fg": [238, 238, 238, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 39 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 74 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 3.5s", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Now run one failing foreground shell command.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 45 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 66 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "⠇", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": "catalog-shell-fail", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 91 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": "The shell lifecycle is complete.", - "fg": [238, 238, 238, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 32 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 81 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 1.5s", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [238, 238, 238, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [30, 30, 30, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...d909-908e-400d-bf9d-37cac347537d/files", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/shell-execute-succeeded.frame.json b/packages/lab/catalog/public/captures/opencode/shell-execute-succeeded.frame.json deleted file mode 100644 index f2fcb1f4a82..00000000000 --- a/packages/lab/catalog/public/captures/opencode/shell-execute-succeeded.frame.json +++ /dev/null @@ -1,520 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [48, 48, 48, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [248, 187, 147, 255], "bg": [49, 49, 49, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [49, 49, 49, 255], "attributes": 0, "width": 1 }, - { "text": "Op", "fg": [238, 238, 238, 255], "bg": [49, 49, 49, 255], "attributes": 1, "width": 2 }, - { "text": "e", "fg": [238, 238, 238, 255], "bg": [47, 47, 47, 255], "attributes": 1, "width": 1 }, - { "text": "n", "fg": [238, 238, 238, 255], "bg": [42, 42, 42, 255], "attributes": 1, "width": 1 }, - { "text": "C", "fg": [238, 238, 238, 255], "bg": [37, 37, 37, 255], "attributes": 1, "width": 1 }, - { "text": "ode Drive", "fg": [238, 238, 238, 255], "bg": [36, 36, 36, 255], "attributes": 1, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [36, 36, 36, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [37, 37, 37, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [38, 38, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [39, 39, 39, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [40, 40, 40, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [41, 41, 41, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [43, 43, 43, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [44, 44, 44, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 45, 45, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [46, 46, 46, 255], "attributes": 0, "width": 1 }, - { "text": " + ", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Run one successful foreground shell command.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 44 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 67 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "+", "fg": [151, 104, 44, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "Thought · 1.8s", "fg": [151, 104, 44, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 97 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "$", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": "printf catalog-shell-success", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 81 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Tool result declared output without an output schema", - "fg": [224, 108, 117, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 52 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 59 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": "The successful shell command completed.", - "fg": [238, 238, 238, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 39 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 74 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 3.5s", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [238, 238, 238, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [30, 30, 30, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...d909-908e-400d-bf9d-37cac347537d/files", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/shell-input-streaming.frame.json b/packages/lab/catalog/public/captures/opencode/shell-input-streaming.frame.json deleted file mode 100644 index c5b20738a1f..00000000000 --- a/packages/lab/catalog/public/captures/opencode/shell-input-streaming.frame.json +++ /dev/null @@ -1,494 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [37, 37, 37, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [249, 184, 143, 255], "bg": [39, 39, 39, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [40, 40, 40, 255], "attributes": 0, "width": 1 }, - { "text": "O", "fg": [238, 238, 238, 255], "bg": [41, 41, 41, 255], "attributes": 1, "width": 1 }, - { "text": "p", "fg": [238, 238, 238, 255], "bg": [42, 42, 42, 255], "attributes": 1, "width": 1 }, - { "text": "enCod", "fg": [238, 238, 238, 255], "bg": [43, 43, 43, 255], "attributes": 1, "width": 5 }, - { "text": "e", "fg": [238, 238, 238, 255], "bg": [39, 39, 39, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [238, 238, 238, 255], "bg": [33, 33, 33, 255], "attributes": 1, "width": 1 }, - { "text": "Drive", "fg": [238, 238, 238, 255], "bg": [30, 30, 30, 255], "attributes": 1, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Run one successful foreground shell command.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 44 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 67 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "+", "fg": [151, 104, 44, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "Thought", "fg": [151, 104, 44, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 104 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "⠋", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": "Writing command...", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 91 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [238, 238, 238, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [30, 30, 30, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { "text": "⬝⬝⬝⬝", "fg": [36, 57, 86, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 4 }, - { "text": "■", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [97, 162, 231, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [63, 105, 163, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [45, 72, 110, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "esc ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 4 }, - { "text": "interrupt", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 58 - }, - { "text": "shift+tab ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/shell-output-streaming.frame.json b/packages/lab/catalog/public/captures/opencode/shell-output-streaming.frame.json deleted file mode 100644 index bc062d71b7b..00000000000 --- a/packages/lab/catalog/public/captures/opencode/shell-output-streaming.frame.json +++ /dev/null @@ -1,492 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [43, 43, 43, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [248, 186, 145, 255], "bg": [42, 42, 42, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [37, 37, 37, 255], "attributes": 0, "width": 1 }, - { "text": "O", "fg": [238, 238, 238, 255], "bg": [32, 32, 32, 255], "attributes": 1, "width": 1 }, - { "text": "penCode Drive", "fg": [238, 238, 238, 255], "bg": [30, 30, 30, 255], "attributes": 1, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [31, 31, 31, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [32, 32, 32, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [33, 33, 33, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 34, 34, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [35, 35, 35, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [37, 37, 37, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [38, 38, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [39, 39, 39, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [40, 40, 40, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [41, 41, 41, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [42, 42, 42, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [43, 43, 43, 255], "attributes": 0, "width": 2 }, - { "text": " + ", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Run one successful foreground shell command.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 44 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 67 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "+", "fg": [151, 104, 44, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "Thought · 1.8s", "fg": [151, 104, 44, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 97 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "⠋", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": "printf catalog-shell-success", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 81 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [238, 238, 238, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [30, 30, 30, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { "text": "⬝⬝⬝⬝⬝⬝⬝⬝", "fg": [36, 57, 86, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "esc ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 4 }, - { "text": "interrupt", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 58 - }, - { "text": "shift+tab ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/skill-picker.frame.json b/packages/lab/catalog/public/captures/opencode/skill-picker.frame.json deleted file mode 100644 index 40fc872795b..00000000000 --- a/packages/lab/catalog/public/captures/opencode/skill-picker.frame.json +++ /dev/null @@ -1,569 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [103, 73, 54, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "New", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "session", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 86 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "Skills", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 1, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 71 - }, - { "text": "esc", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "Search", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 78 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [250, 178, 131, 255], "attributes": 0, "width": 3 }, - { - "text": "OpenCode Use this skill for any question about OpenCode itself, including how Op", - "fg": [10, 10, 10, 255], - "bg": [250, 178, 131, 255], - "attributes": 1, - "width": 80 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [250, 178, 131, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "Report ", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 8 }, - { - "text": " Use when the user wants to report an opencode issue or bug. Collect sta", - "fg": [128, 128, 128, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 72 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 2 }, - { "text": "Ask", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "anything...", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 11 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "\"What", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "is", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "the", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "tech", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "stack", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "of", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "this", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "project?\"", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [38, 64, 101, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 38 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "╹", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [12, 12, 12, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { - "text": "/private/var/folde...-dca9766779d4/files", - "fg": [53, 53, 53, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 40 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "agents", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "commands", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 111 - }, - { "text": "local", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [52, 89, 59, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "○", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [8, 8, 8, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/status.frame.json b/packages/lab/catalog/public/captures/opencode/status.frame.json deleted file mode 100644 index d5426f3a3e8..00000000000 --- a/packages/lab/catalog/public/captures/opencode/status.frame.json +++ /dev/null @@ -1,673 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [103, 73, 54, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "New", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "session", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 86 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Status", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 1, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 47 - }, - { "text": "esc", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "No MCP servers", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 44 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 40 - }, - { "text": "█", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [16, 16, 16, 255], "attributes": 0, "width": 2 }, - { "text": "█", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "█", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [16, 16, 16, 255], "attributes": 0, "width": 2 }, - { "text": "█", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "█", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "▀▀▀", "fg": [53, 53, 53, 255], "bg": [16, 16, 16, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "█", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [16, 16, 16, 255], "attributes": 0, "width": 2 }, - { "text": "█", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "█", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [28, 28, 28, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "█", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [28, 28, 28, 255], "attributes": 0, "width": 2 }, - { "text": "█", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "█", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [28, 28, 28, 255], "attributes": 0, "width": 2 }, - { "text": "█", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "█", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 1, "width": 1 }, - { "text": "▀▀▀", "fg": [98, 98, 98, 255], "bg": [28, 28, 28, 255], "attributes": 1, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 39 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 40 - }, - { "text": "▀▀▀▀", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "█▀▀▀", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "▀▀▀▀", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "▀", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "▀▀", "fg": [16, 16, 16, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "▀", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "▀▀▀▀", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 1, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "▀▀▀▀", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 1, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "▀▀▀▀", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 1, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "▀▀▀▀", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 1, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 39 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 2 }, - { "text": "Ask", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "anything...", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 11 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "\"What", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "is", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "the", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "tech", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "stack", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "of", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "this", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "project?\"", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [38, 64, 101, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 38 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "╹", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [12, 12, 12, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { - "text": "/private/var/folde...-dca9766779d4/files", - "fg": [53, 53, 53, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 40 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "agents", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "commands", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 111 - }, - { "text": "local", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [52, 89, 59, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "○", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [8, 8, 8, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/subagent-completed.frame.json b/packages/lab/catalog/public/captures/opencode/subagent-completed.frame.json deleted file mode 100644 index e2160d79c8e..00000000000 --- a/packages/lab/catalog/public/captures/opencode/subagent-completed.frame.json +++ /dev/null @@ -1,496 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [39, 39, 39, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [250, 178, 132, 255], "bg": [35, 35, 35, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [35, 35, 35, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Dri", "fg": [238, 238, 238, 255], "bg": [35, 35, 35, 255], "attributes": 1, "width": 12 }, - { "text": "v", "fg": [238, 238, 238, 255], "bg": [36, 36, 36, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [238, 238, 238, 255], "bg": [37, 37, 37, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [38, 38, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [39, 39, 39, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [40, 40, 40, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [42, 42, 42, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [43, 43, 43, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [44, 44, 44, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 45, 45, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [46, 46, 46, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [47, 47, 47, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [46, 46, 46, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [41, 41, 41, 255], "attributes": 0, "width": 1 }, - { "text": " + ", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Use a subagent to inspect src/ledger.ts and calculate the total.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 64 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 47 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "+", "fg": [151, 104, 44, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "Thought · 55ms", "fg": [151, 104, 44, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 97 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "✓", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "Researcher Subagent — Inspect ledger lifecycle", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 46 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 65 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": "Subagent completed the ledger lifecycle.", - "fg": [238, 238, 238, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 40 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 73 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 1.8s", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [238, 238, 238, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [30, 30, 30, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...8254-5264-4488-b506-66d4b3b6a763/files", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "⦿ UI", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/subagent-running.frame.json b/packages/lab/catalog/public/captures/opencode/subagent-running.frame.json deleted file mode 100644 index 6c9bc981eee..00000000000 --- a/packages/lab/catalog/public/captures/opencode/subagent-running.frame.json +++ /dev/null @@ -1,480 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [43, 43, 43, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [250, 178, 131, 255], "bg": [43, 43, 43, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [43, 43, 43, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [238, 238, 238, 255], "bg": [43, 43, 43, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [43, 43, 43, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Use a subagent to inspect src/ledger.ts and calculate the total.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 64 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 47 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "+", "fg": [151, 104, 44, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "Thought · 55ms", "fg": [151, 104, 44, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 97 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "⠋", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "Researcher Subagent — Inspect ledger lifecycle", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 46 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 65 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [238, 238, 238, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [30, 30, 30, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { "text": "■", "fg": [45, 72, 110, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [63, 105, 163, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [97, 162, 231, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "⬝⬝⬝⬝", "fg": [40, 63, 95, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "esc ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 4 }, - { "text": "interrupt", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 58 - }, - { "text": "shift+tab ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/subagent-session.frame.json b/packages/lab/catalog/public/captures/opencode/subagent-session.frame.json deleted file mode 100644 index 7e0df21fb79..00000000000 --- a/packages/lab/catalog/public/captures/opencode/subagent-session.frame.json +++ /dev/null @@ -1,506 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [49, 49, 49, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [249, 184, 141, 255], "bg": [49, 49, 49, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [48, 48, 48, 255], "attributes": 0, "width": 1 }, - { "text": "O", "fg": [238, 238, 238, 255], "bg": [45, 45, 45, 255], "attributes": 1, "width": 1 }, - { "text": "penCode Drive", "fg": [238, 238, 238, 255], "bg": [43, 43, 43, 255], "attributes": 1, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [43, 43, 43, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [44, 44, 44, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 45, 45, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [46, 46, 46, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [47, 47, 47, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [48, 48, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [49, 49, 49, 255], "attributes": 0, "width": 3 }, - { "text": " + ", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "You are a subagent spawned by another session.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 46 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 65 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Read src/ledger.ts and report its exports, values, and calculated total.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 72 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 39 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": "The child inspected src/ledger.ts and calculated total 42.", - "fg": [238, 238, 238, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 58 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 55 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "Researcher", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 10 }, - { - "text": " · Simulated Model · 1.5s", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 78 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [72, 72, 72, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [72, 72, 72, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Subagents", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 1, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Shell", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 90 - }, - { "text": "esc", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [72, 72, 72, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [72, 72, 72, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " No active subagents", - "fg": [128, 128, 128, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 20 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 92 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [72, 72, 72, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [72, 72, 72, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [72, 72, 72, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [72, 72, 72, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [72, 72, 72, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [72, 72, 72, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "show inactive", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 1, "width": 13 }, - { "text": " ", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "ctrl+a", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "tabs", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 1, "width": 4 }, - { "text": " ", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "←/→", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 81 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [72, 72, 72, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "⦿ UI", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/theme-picker.frame.json b/packages/lab/catalog/public/captures/opencode/theme-picker.frame.json deleted file mode 100644 index 18721f8d711..00000000000 --- a/packages/lab/catalog/public/captures/opencode/theme-picker.frame.json +++ /dev/null @@ -1,715 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [103, 73, 54, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "New", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "session", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 86 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "Themes", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 1, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 43 - }, - { "text": "esc", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "Search", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 50 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "mercury", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 49 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "monokai", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 49 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "nightowl", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 48 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "nord", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 52 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "one-dark", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 48 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 2 }, - { "text": "Ask", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [250, 178, 131, 255], "attributes": 0, "width": 1 }, - { "text": "●", "fg": [10, 10, 10, 255], "bg": [250, 178, 131, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [250, 178, 131, 255], "attributes": 0, "width": 1 }, - { "text": "opencode", "fg": [10, 10, 10, 255], "bg": [250, 178, 131, 255], "attributes": 1, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [250, 178, 131, 255], - "attributes": 0, - "width": 47 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "orng", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 52 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 2 }, - { "text": "Buil", "fg": [38, 64, 101, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "osaka-jade", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 46 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "╹", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "▀▀▀▀▀▀", "fg": [12, 12, 12, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "palenight", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 47 - }, - { "text": "▀▀▀▀▀▀▀▀", "fg": [12, 12, 12, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 22 - }, - { "text": "/privat", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "rosepine", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 48 - }, - { "text": "commands", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": "solarized", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 47 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 111 - }, - { "text": "local", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [52, 89, 59, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "○", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [8, 8, 8, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/thinking-streaming.frame.json b/packages/lab/catalog/public/captures/opencode/thinking-streaming.frame.json deleted file mode 100644 index 42897f80a88..00000000000 --- a/packages/lab/catalog/public/captures/opencode/thinking-streaming.frame.json +++ /dev/null @@ -1,470 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [43, 43, 43, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [250, 178, 131, 255], "bg": [43, 43, 43, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [43, 43, 43, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [238, 238, 238, 255], "bg": [43, 43, 43, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [43, 43, 43, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Run one successful foreground shell command.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 44 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 67 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "⠋", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "Thinking", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 103 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [238, 238, 238, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [30, 30, 30, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { "text": "■", "fg": [45, 72, 110, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [63, 105, 163, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [97, 162, 231, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "⬝⬝⬝⬝", "fg": [40, 63, 95, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "esc ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 4 }, - { "text": "interrupt", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 58 - }, - { "text": "shift+tab ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/toast-error.frame.json b/packages/lab/catalog/public/captures/opencode/toast-error.frame.json deleted file mode 100644 index c663da79f72..00000000000 --- a/packages/lab/catalog/public/captures/opencode/toast-error.frame.json +++ /dev/null @@ -1,593 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [250, 178, 131, 255], "bg": [30, 30, 30, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { - "text": "OpenCode DriveCatalog cap", - "fg": [238, 238, 238, 255], - "bg": [30, 30, 30, 255], - "attributes": 1, - "width": 25 - }, - { "text": "t", "fg": [196, 196, 196, 255], "bg": [30, 30, 30, 255], "attributes": 1, "width": 1 }, - { "text": "u", "fg": [146, 146, 146, 255], "bg": [30, 30, 30, 255], "attributes": 1, "width": 1 }, - { "text": "r", "fg": [97, 97, 97, 255], "bg": [30, 30, 30, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [47, 47, 47, 255], "bg": [30, 30, 30, 255], "attributes": 1, "width": 1 }, - { "text": " + ", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [17, 17, 17, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [17, 17, 17, 255], "attributes": 0, "width": 2 }, - { "text": "←", "fg": [95, 95, 95, 255], "bg": [17, 17, 17, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [17, 17, 17, 255], "attributes": 0, "width": 1 }, - { "text": "Patched", "fg": [95, 95, 95, 255], "bg": [17, 17, 17, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [17, 17, 17, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-9b", - "fg": [95, 95, 95, 255], - "bg": [17, 17, 17, 255], - "attributes": 0, - "width": 49 - }, - { "text": "┃", "fg": [224, 108, 117, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 50 - }, - { "text": "┃", "fg": [224, 108, 117, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 61 - }, - { "text": "┃", "fg": [224, 108, 117, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { - "text": "Sharing is not implemented for V2 sessions yet", - "fg": [238, 238, 238, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 46 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [224, 108, 117, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 143, 143, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": " -", "fg": [226, 106, 117, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [238, 238, 238, 255], "bg": [55, 34, 44, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [55, 34, 44, 255], - "attributes": 0, - "width": 47 - }, - { "text": "┃", "fg": [224, 108, 117, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 50 - }, - { "text": "┃", "fg": [224, 108, 117, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 143, 143, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": " +", "fg": [184, 219, 135, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "after", "fg": [238, 238, 238, 255], "bg": [32, 48, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 100 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": "The fixture was updated.", - "fg": [238, 238, 238, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 24 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 89 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 1.7s", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Ask me about the fixture direction.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 35 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "# Questions", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 100 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Which direction should the fixture take?", - "fg": [128, 128, 128, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 40 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 71 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Keep it minimal (Recommended)", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 82 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": "Keeping the fixture minimal.", - "fg": [238, 238, 238, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 85 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 209ms", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [238, 238, 238, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [30, 30, 30, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...5ab6-ac5f-4eeb-a801-dca9766779d4/files", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/toast-info.frame.json b/packages/lab/catalog/public/captures/opencode/toast-info.frame.json deleted file mode 100644 index 51b9327449c..00000000000 --- a/packages/lab/catalog/public/captures/opencode/toast-info.frame.json +++ /dev/null @@ -1,674 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [103, 73, 54, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "DriveCatalog", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 12 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "cap", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 3 }, - { "text": "t", "fg": [81, 81, 81, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 1 }, - { "text": "u", "fg": [60, 60, 60, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 1 }, - { "text": "r", "fg": [40, 40, 40, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [19, 19, 19, 255], "bg": [12, 12, 12, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 84 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [4, 4, 4, 255], "bg": [7, 7, 7, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [7, 7, 7, 255], "attributes": 0, "width": 2 }, - { "text": "←", "fg": [39, 39, 39, 255], "bg": [7, 7, 7, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [7, 7, 7, 255], "attributes": 0, "width": 1 }, - { "text": "Patched", "fg": [39, 39, 39, 255], "bg": [7, 7, 7, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [7, 7, 7, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-9b5a5ab6-ac5f-4eeb", - "fg": [39, 39, 39, 255], - "bg": [7, 7, 7, 255], - "attributes": 0, - "width": 65 - }, - { "text": "┃", "fg": [35, 75, 80, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 34 - }, - { "text": "┃", "fg": [35, 75, 80, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [4, 4, 4, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [8, 8, 8, 255], - "attributes": 0, - "width": 77 - }, - { "text": "┃", "fg": [35, 75, 80, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 2 }, - { "text": "Debug", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "info", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "copied", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "to", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "clipboard", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [35, 75, 80, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [4, 4, 4, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [59, 59, 59, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": "-", "fg": [93, 44, 48, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [98, 98, 98, 255], "bg": [23, 14, 18, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [23, 14, 18, 255], - "attributes": 0, - "width": 63 - }, - { "text": "┃", "fg": [35, 75, 80, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 34 - }, - { "text": "┃", "fg": [35, 75, 80, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [4, 4, 4, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [59, 59, 59, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [76, 90, 56, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": "after", "fg": [98, 98, 98, 255], "bg": [13, 20, 24, 255], "attributes": 0, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [13, 20, 24, 255], - "attributes": 0, - "width": 100 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [4, 4, 4, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [8, 8, 8, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 5 }, - { "text": "The", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "fixture", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "was", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "updated.", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 89 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "Si", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Debug", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 1, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - }, - { "text": "esc", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 12 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Ask", "fg": [98, 98, 98, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "me", "fg": [98, 98, 98, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "abo", "fg": [98, 98, 98, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Version ", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "local (local)", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 13 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 62 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 12 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Date ", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": "2026-08-12T19:26:41.411Z", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 24 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 51 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "OS ", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": "macOS 25.5.0 (arm64)", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 20 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 55 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [4, 4, 4, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 12 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Terminal ", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "ghostty 1.3.1", "fg": [238, 238, 238, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 13 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 62 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [4, 4, 4, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "#", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "Question", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Session ID", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": "ses_0088f2278ffeRfOCs51KQiGzfl", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 30 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 45 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [4, 4, 4, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 12 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Model ", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": "simulation/gpt-sim-model", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 24 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 51 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [4, 4, 4, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Which", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "dire", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [4, 4, 4, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Keep", "fg": [98, 98, 98, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "it", "fg": [98, 98, 98, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "mi", "fg": [98, 98, 98, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Share this when reporting an issue.", - "fg": [128, 128, 128, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 35 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 35 - }, - { "text": "✓ copied", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 1, "width": 8 }, - { "text": " ", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "enter", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [4, 4, 4, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 12 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 5 }, - { "text": "Keeping", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "the", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "fixture", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "minimal.", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 85 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "209ms", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [38, 64, 101, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [98, 98, 98, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [53, 53, 53, 255], "bg": [12, 12, 12, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 12, 12, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [38, 64, 101, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [12, 12, 12, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...5ab6-ac5f-4eeb-a801-dca9766779d4/files", - "fg": [53, 53, 53, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "agents", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p", "fg": [98, 98, 98, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 1 }, - { "text": "commands", "fg": [53, 53, 53, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [4, 4, 4, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [4, 4, 4, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [52, 89, 59, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "○", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [53, 53, 53, 255], "bg": [8, 8, 8, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [8, 8, 8, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/toast-success.frame.json b/packages/lab/catalog/public/captures/opencode/toast-success.frame.json deleted file mode 100644 index 62a758bc2be..00000000000 --- a/packages/lab/catalog/public/captures/opencode/toast-success.frame.json +++ /dev/null @@ -1,593 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [250, 178, 131, 255], "bg": [30, 30, 30, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { - "text": "OpenCode DriveCatalog cap", - "fg": [238, 238, 238, 255], - "bg": [30, 30, 30, 255], - "attributes": 1, - "width": 25 - }, - { "text": "t", "fg": [196, 196, 196, 255], "bg": [30, 30, 30, 255], "attributes": 1, "width": 1 }, - { "text": "u", "fg": [146, 146, 146, 255], "bg": [30, 30, 30, 255], "attributes": 1, "width": 1 }, - { "text": "r", "fg": [97, 97, 97, 255], "bg": [30, 30, 30, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [47, 47, 47, 255], "bg": [30, 30, 30, 255], "attributes": 1, "width": 1 }, - { "text": " + ", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [17, 17, 17, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [17, 17, 17, 255], "attributes": 0, "width": 2 }, - { "text": "←", "fg": [95, 95, 95, 255], "bg": [17, 17, 17, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [17, 17, 17, 255], "attributes": 0, "width": 1 }, - { "text": "Patched", "fg": [95, 95, 95, 255], "bg": [17, 17, 17, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [17, 17, 17, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-9b5a5ab6-", - "fg": [95, 95, 95, 255], - "bg": [17, 17, 17, 255], - "attributes": 0, - "width": 56 - }, - { "text": "┃", "fg": [127, 216, 143, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 43 - }, - { "text": "┃", "fg": [127, 216, 143, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 68 - }, - { "text": "┃", "fg": [127, 216, 143, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { - "text": "Session transcript copied to clipboard!", - "fg": [238, 238, 238, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 39 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [127, 216, 143, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 143, 143, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": " -", "fg": [226, 106, 117, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [238, 238, 238, 255], "bg": [55, 34, 44, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [55, 34, 44, 255], - "attributes": 0, - "width": 54 - }, - { "text": "┃", "fg": [127, 216, 143, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 43 - }, - { "text": "┃", "fg": [127, 216, 143, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 143, 143, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": " +", "fg": [184, 219, 135, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "after", "fg": [238, 238, 238, 255], "bg": [32, 48, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 100 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": "The fixture was updated.", - "fg": [238, 238, 238, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 24 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 89 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 1.7s", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Ask me about the fixture direction.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 35 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "# Questions", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 100 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Which direction should the fixture take?", - "fg": [128, 128, 128, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 40 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 71 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Keep it minimal (Recommended)", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 82 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [10, 10, 10, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": "Keeping the fixture minimal.", - "fg": [238, 238, 238, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 85 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 209ms", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [238, 238, 238, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [30, 30, 30, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...5ab6-ac5f-4eeb-a801-dca9766779d4/files", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/webfetch-streaming.frame.json b/packages/lab/catalog/public/captures/opencode/webfetch-streaming.frame.json deleted file mode 100644 index 29b96d393d8..00000000000 --- a/packages/lab/catalog/public/captures/opencode/webfetch-streaming.frame.json +++ /dev/null @@ -1,473 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [250, 178, 131, 255], "bg": [30, 30, 30, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "New session", "fg": [238, 238, 238, 255], "bg": [30, 30, 30, 255], "attributes": 1, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 86 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Fetch the Example Domain.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 86 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "⠋", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "Fetching from the web...", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 24 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 87 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [238, 238, 238, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [30, 30, 30, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { "text": "■", "fg": [97, 162, 231, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "⬝⬝⬝⬝⬝⬝", "fg": [30, 45, 66, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "esc ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 4 }, - { "text": "interrupt", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 58 - }, - { "text": "shift+tab ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/webfetch-success.frame.json b/packages/lab/catalog/public/captures/opencode/webfetch-success.frame.json deleted file mode 100644 index 13a692a2448..00000000000 --- a/packages/lab/catalog/public/captures/opencode/webfetch-success.frame.json +++ /dev/null @@ -1,486 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [43, 43, 43, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [250, 178, 131, 255], "bg": [43, 43, 43, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [43, 43, 43, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [238, 238, 238, 255], "bg": [43, 43, 43, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [43, 43, 43, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Fetch the Example Domain.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 86 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "%", "fg": [224, 108, 117, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "WebFetch https://example.com", - "fg": [224, 108, 117, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": "The web fetch is complete.", - "fg": [238, 238, 238, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 87 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 7.2s", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [238, 238, 238, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [30, 30, 30, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...5896-73f1-46ad-af77-61e6cfee80ff/files", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "⦿ UI", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/websearch-failure.frame.json b/packages/lab/catalog/public/captures/opencode/websearch-failure.frame.json deleted file mode 100644 index 2eeed0bb2d9..00000000000 --- a/packages/lab/catalog/public/captures/opencode/websearch-failure.frame.json +++ /dev/null @@ -1,527 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [31, 31, 31, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [250, 179, 134, 255], "bg": [32, 32, 32, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [33, 33, 33, 255], "attributes": 0, "width": 1 }, - { "text": "O", "fg": [238, 238, 238, 255], "bg": [34, 34, 34, 255], "attributes": 1, "width": 1 }, - { "text": "p", "fg": [238, 238, 238, 255], "bg": [35, 35, 35, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [238, 238, 238, 255], "bg": [36, 36, 36, 255], "attributes": 1, "width": 1 }, - { "text": "n", "fg": [238, 238, 238, 255], "bg": [38, 38, 38, 255], "attributes": 1, "width": 1 }, - { "text": "C", "fg": [238, 238, 238, 255], "bg": [39, 39, 39, 255], "attributes": 1, "width": 1 }, - { "text": "o", "fg": [238, 238, 238, 255], "bg": [40, 40, 40, 255], "attributes": 1, "width": 1 }, - { "text": "d", "fg": [238, 238, 238, 255], "bg": [41, 41, 41, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [238, 238, 238, 255], "bg": [42, 42, 42, 255], "attributes": 1, "width": 1 }, - { "text": " Dri", "fg": [238, 238, 238, 255], "bg": [43, 43, 43, 255], "attributes": 1, "width": 4 }, - { "text": "v", "fg": [238, 238, 238, 255], "bg": [42, 42, 42, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [238, 238, 238, 255], "bg": [37, 37, 37, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [32, 32, 32, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 14 }, - { "text": " + ", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Fetch the Example Domain.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 86 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "%", "fg": [224, 108, 117, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "WebFetch https://example.com", - "fg": [224, 108, 117, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": "The web fetch is complete.", - "fg": [238, 238, 238, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 87 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 7.2s", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Search the web for the OpenCode terminal interface.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 51 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "⠹", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "Searching web...", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 16 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 95 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [238, 238, 238, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [30, 30, 30, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { "text": "■", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [97, 162, 231, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [63, 105, 163, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [45, 72, 110, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [33, 50, 75, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [25, 36, 52, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "⬝⬝", "fg": [59, 98, 151, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "esc ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 4 }, - { "text": "interrupt", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 58 - }, - { "text": "shift+tab ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/opencode/websearch-running.frame.json b/packages/lab/catalog/public/captures/opencode/websearch-running.frame.json deleted file mode 100644 index 5e846857260..00000000000 --- a/packages/lab/catalog/public/captures/opencode/websearch-running.frame.json +++ /dev/null @@ -1,517 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [37, 37, 37, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [197, 147, 180, 255], "bg": [37, 37, 37, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [37, 37, 37, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [238, 238, 238, 255], "bg": [37, 37, 37, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [37, 37, 37, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Fetch the Example Domain.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 86 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "%", "fg": [224, 108, 117, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "WebFetch https://example.com", - "fg": [224, 108, 117, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": "The web fetch is complete.", - "fg": [238, 238, 238, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 87 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 7.2s", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { - "text": "Search the web for the OpenCode terminal interface.", - "fg": [238, 238, 238, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 51 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 60 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 5 }, - { "text": "⠋", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "Searching web...", - "fg": [128, 128, 128, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 16 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 95 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [92, 156, 245, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [238, 238, 238, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [128, 128, 128, 255], "bg": [30, 30, 30, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 30, 30, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [30, 30, 30, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 3 }, - { "text": "■", "fg": [92, 156, 245, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "⬝⬝⬝⬝⬝⬝⬝", "fg": [25, 36, 52, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 1 }, - { "text": "esc ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 4 }, - { "text": "interrupt", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 58 - }, - { "text": "shift+tab ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [238, 238, 238, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [128, 128, 128, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [10, 10, 10, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [10, 10, 10, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [127, 216, 143, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "⦿ UI", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [128, 128, 128, 255], "bg": [20, 20, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [20, 20, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/agent-picker.frame.json b/packages/lab/catalog/public/captures/tokyonight/agent-picker.frame.json deleted file mode 100644 index c45cf1023e6..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/agent-picker.frame.json +++ /dev/null @@ -1,680 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [54, 70, 105, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "New", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "session", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 86 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "Select agent", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 1, "width": 12 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 37 - }, - { "text": "esc", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "Search", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 50 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [130, 170, 255, 255], "attributes": 0, "width": 1 }, - { "text": "●", "fg": [26, 27, 38, 255], "bg": [130, 170, 255, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [130, 170, 255, 255], "attributes": 0, "width": 1 }, - { - "text": "build The default agent. Executes tools based on con", - "fg": [26, 27, 38, 255], - "bg": [130, 170, 255, 255], - "attributes": 1, - "width": 52 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [130, 170, 255, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "plan", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { - "text": " Read-only agent for exploring the codebase and ", - "fg": [130, 139, 184, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 48 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "reviewer", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 8 }, - { - "text": " Reviews deterministic UI fixtures", - "fg": [130, 139, 184, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 34 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 2 }, - { "text": "Ask", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "anything...", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 11 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "\"Fix", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "a", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "TODO", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "in", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "the", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "codebase\"", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [79, 63, 105, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 38 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "╹", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [14, 15, 22, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { - "text": "/private/var/folde...-580163831713/files", - "fg": [54, 57, 76, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 40 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "agents", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "commands", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 111 - }, - { "text": "local", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [80, 96, 58, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "○", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 13, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/assistant-response-failed.frame.json b/packages/lab/catalog/public/captures/tokyonight/assistant-response-failed.frame.json deleted file mode 100644 index 1b69666d4d7..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/assistant-response-failed.frame.json +++ /dev/null @@ -1,517 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [130, 170, 255, 255], "bg": [34, 36, 54, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [200, 211, 245, 255], "bg": [34, 36, 54, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Show a successful streaming assistant response.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 47 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 64 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": "This assistant response completes successfully.", - "fg": [200, 211, 245, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 47 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 66 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 102ms", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Show a failed assistant response.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 33 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 78 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": "This response starts but the simulated provider disconnects.", - "fg": [200, 211, 245, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 53 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": "Error: Decode error (200 POST https://api.openai.com/v1/chat/completions)", - "fg": [255, 117, 127, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 73 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 40 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": "Build · Simulated Model · 311ms", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 31 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [200, 211, 245, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [34, 36, 54, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...ae99-3122-4a7a-93fb-52b7acebf43e/files", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "● UI", "fg": [255, 117, 127, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/assistant-response-interrupted.frame.json b/packages/lab/catalog/public/captures/tokyonight/assistant-response-interrupted.frame.json deleted file mode 100644 index 49c69ffaf38..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/assistant-response-interrupted.frame.json +++ /dev/null @@ -1,547 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 47, 66, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [130, 170, 255, 255], "bg": [45, 47, 66, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 47, 66, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [200, 211, 245, 255], "bg": [45, 47, 66, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 47, 66, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Show a successful streaming assistant response.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 47 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 64 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": "This assistant response completes successfully.", - "fg": [200, 211, 245, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 47 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 66 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 102ms", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Show a failed assistant response.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 33 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 78 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": "This response starts but the simulated provider disconnects.", - "fg": [200, 211, 245, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 53 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": "Error: Decode error (200 POST https://api.openai.com/v1/chat/completions)", - "fg": [255, 117, 127, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 73 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 40 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": "Build · Simulated Model · 311ms", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 31 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Show an interrupted assistant response.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 39 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 72 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": "This response remains active until the user interrupts it.", - "fg": [200, 211, 245, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 58 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 55 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [200, 211, 245, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [34, 36, 54, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { "text": "■", "fg": [202, 161, 234, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "⬝⬝⬝⬝⬝⬝", "fg": [66, 57, 90, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "esc ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 4 }, - { "text": "interrupt", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 58 - }, - { "text": "shift+tab ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "● UI", "fg": [255, 117, 127, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/assistant-response-succeeded.frame.json b/packages/lab/catalog/public/captures/tokyonight/assistant-response-succeeded.frame.json deleted file mode 100644 index 043c1943b79..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/assistant-response-succeeded.frame.json +++ /dev/null @@ -1,476 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [39, 41, 60, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [130, 170, 255, 255], "bg": [39, 41, 60, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [39, 41, 60, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [200, 211, 245, 255], "bg": [39, 41, 60, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [39, 41, 60, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Show a successful streaming assistant response.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 47 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 64 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": "This assistant response completes successfully.", - "fg": [200, 211, 245, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 47 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 66 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 102ms", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [200, 211, 245, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [34, 36, 54, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...ae99-3122-4a7a-93fb-52b7acebf43e/files", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/command-palette.frame.json b/packages/lab/catalog/public/captures/tokyonight/command-palette.frame.json deleted file mode 100644 index 0e23e7b66b3..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/command-palette.frame.json +++ /dev/null @@ -1,741 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [54, 70, 105, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "New", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "session", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 86 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "Commands", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 1, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 41 - }, - { "text": "esc", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "Search", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 50 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "Suggested", "fg": [255, 150, 108, 255], "bg": [30, 32, 48, 255], "attributes": 1, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 47 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [130, 170, 255, 255], "attributes": 0, "width": 3 }, - { "text": "Switch model", "fg": [26, 27, 38, 255], "bg": [130, 170, 255, 255], "attributes": 1, "width": 12 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [130, 170, 255, 255], - "attributes": 0, - "width": 32 - }, - { "text": "ctrl+x m", "fg": [26, 27, 38, 255], "bg": [130, 170, 255, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [130, 170, 255, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { - "text": "Connect an integration", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 22 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 34 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "Open settings", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 13 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 43 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 2 }, - { "text": "Ask", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "Session", "fg": [255, 150, 108, 255], "bg": [30, 32, 48, 255], "attributes": 1, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 49 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "Switch session", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 30 - }, - { "text": "ctrl+x l", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 2 }, - { "text": "Buil", "fg": [79, 63, 105, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "New session", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 33 - }, - { "text": "ctrl+x n", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "╹", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "▀▀▀▀▀▀", "fg": [14, 15, 22, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { - "text": "Open session or project", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 23 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 23 - }, - { "text": "ctrl+o", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "▀▀▀▀▀▀▀▀", "fg": [14, 15, 22, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "/privat", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "Close tab", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 35 - }, - { "text": "ctrl+x w", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "commands", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { - "text": "Reopen closed tab", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 17 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 23 - }, - { "text": "ctrl+shift+t", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 12 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 111 - }, - { "text": "local", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [80, 96, 58, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "○", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 13, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/debug.frame.json b/packages/lab/catalog/public/captures/tokyonight/debug.frame.json deleted file mode 100644 index cfdbf206886..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/debug.frame.json +++ /dev/null @@ -1,627 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [54, 70, 105, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "New", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "session", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 86 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Debug", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 1, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - }, - { "text": "esc", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Version ", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "local (local)", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 13 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 62 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Date ", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": "2026-08-12T19:26:35.794Z", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 24 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 51 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "OS ", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": "macOS 25.5.0 (arm64)", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 20 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 55 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Terminal ", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "ghostty 1.3.1", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 13 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 62 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Session ID", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "n/a", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 72 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Model ", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": "simulation/gpt-sim-model", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 24 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 51 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Share this when reporting an issue.", - "fg": [130, 139, 184, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 35 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 39 - }, - { "text": "copy", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 1, "width": 4 }, - { "text": " ", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "enter", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [79, 63, 105, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 38 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "╹", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [14, 15, 22, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { - "text": "/private/var/folde...-580163831713/files", - "fg": [54, 57, 76, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 40 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "agents", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "commands", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 111 - }, - { "text": "local", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [80, 96, 58, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "○", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 13, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/diff-viewer.frame.json b/packages/lab/catalog/public/captures/tokyonight/diff-viewer.frame.json deleted file mode 100644 index 37a8063ad0d..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/diff-viewer.frame.json +++ /dev/null @@ -1,460 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "Diff ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "working tree", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 12 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 93 - }, - { "text": "0 files", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 7 } - ] - }, - { - "spans": [ - { - "text": "────────────────────────────────────────────────────────────────────────────────", - "fg": [115, 122, 162, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 80 - }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 34 - }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "──", "fg": [115, 122, 162, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "No changes to show", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 61 - }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { - "text": "Debug info copied to clipboard", - "fg": [200, 211, 245, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 30 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 80 - }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 34 - }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "tab ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 4 }, - { - "text": "focus file tree", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "n ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "next file", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "] ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "next hunk", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "[ ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "previous hunk", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "p ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "previous file", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "d ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "switch source", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "m ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "mark reviewed", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "? ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "all", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "⦿ UI", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/glob-empty.frame.json b/packages/lab/catalog/public/captures/tokyonight/glob-empty.frame.json deleted file mode 100644 index 2208a7edc4d..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/glob-empty.frame.json +++ /dev/null @@ -1,530 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [44, 47, 66, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [130, 170, 255, 255], "bg": [44, 47, 66, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [44, 47, 66, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [200, 211, 245, 255], "bg": [44, 47, 66, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [44, 47, 66, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Find the TypeScript source files.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 33 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 78 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "Explored — 1 search", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 92 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": "The first glob search is complete.", - "fg": [200, 211, 245, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 34 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 79 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 690ms", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Find Rust files that do not exist.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 34 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "Explored — 1 search", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 92 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": "The empty glob search is complete.", - "fg": [200, 211, 245, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 34 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 79 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 165ms", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [200, 211, 245, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [34, 36, 54, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...aabf-99f8-4b9d-9d17-28dc838b3ee5/files", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/glob-success.frame.json b/packages/lab/catalog/public/captures/tokyonight/glob-success.frame.json deleted file mode 100644 index 7e7056108c1..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/glob-success.frame.json +++ /dev/null @@ -1,486 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [35, 37, 56, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [130, 170, 255, 255], "bg": [35, 37, 56, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [35, 37, 56, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [200, 211, 245, 255], "bg": [35, 37, 56, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [35, 37, 56, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Find the TypeScript source files.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 33 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 78 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "Explored — 1 search", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 92 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": "The first glob search is complete.", - "fg": [200, 211, 245, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 34 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 79 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 690ms", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [200, 211, 245, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [34, 36, 54, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...aabf-99f8-4b9d-9d17-28dc838b3ee5/files", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/grep-empty.frame.json b/packages/lab/catalog/public/captures/tokyonight/grep-empty.frame.json deleted file mode 100644 index 28e2d962d0b..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/grep-empty.frame.json +++ /dev/null @@ -1,547 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 47, 66, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [131, 170, 254, 255], "bg": [45, 47, 66, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 47, 66, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [200, 211, 245, 255], "bg": [45, 47, 66, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 47, 66, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": "The grouped exploration is complete.", - "fg": [200, 211, 245, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 36 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 77 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 774ms", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Search the source directory for credits.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 40 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 71 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "Explored — 1 search", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 92 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": "The matching grep search is complete.", - "fg": [200, 211, 245, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 37 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 76 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 152ms", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Search the source directory for DEADBEEF.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 41 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 70 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "Explored — 1 search", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 92 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": "The empty grep search is complete.", - "fg": [200, 211, 245, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 34 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 79 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 116ms", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [200, 211, 245, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [34, 36, 54, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...aabf-99f8-4b9d-9d17-28dc838b3ee5/files", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "● UI", "fg": [255, 117, 127, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/grep-failure.frame.json b/packages/lab/catalog/public/captures/tokyonight/grep-failure.frame.json deleted file mode 100644 index 4c69eefea66..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/grep-failure.frame.json +++ /dev/null @@ -1,547 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [36, 39, 57, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [130, 170, 255, 255], "bg": [36, 39, 57, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [36, 39, 57, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [200, 211, 245, 255], "bg": [36, 39, 57, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [36, 39, 57, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": "The matching grep search is complete.", - "fg": [200, 211, 245, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 37 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 76 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 152ms", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Search the source directory for DEADBEEF.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 41 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 70 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "Explored — 1 search", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 92 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": "The empty grep search is complete.", - "fg": [200, 211, 245, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 34 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 79 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 116ms", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Run an invalid regular expression search.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 41 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 70 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "Explored — 1 search", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 92 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": "The invalid grep search is complete.", - "fg": [200, 211, 245, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 36 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 77 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 148ms", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [200, 211, 245, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [34, 36, 54, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...aabf-99f8-4b9d-9d17-28dc838b3ee5/files", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "● UI", "fg": [255, 117, 127, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/grep-success.frame.json b/packages/lab/catalog/public/captures/tokyonight/grep-success.frame.json deleted file mode 100644 index 76bf144360d..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/grep-success.frame.json +++ /dev/null @@ -1,547 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [35, 37, 55, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [168, 164, 211, 255], "bg": [35, 37, 55, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [35, 37, 55, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [200, 211, 245, 255], "bg": [35, 37, 55, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [35, 37, 55, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": "The empty glob search is complete.", - "fg": [200, 211, 245, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 34 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 79 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 165ms", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Explore TypeScript files and search them for credits together.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 62 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 49 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "Explored — 2 searches", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 21 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 90 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": "The grouped exploration is complete.", - "fg": [200, 211, 245, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 36 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 77 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 774ms", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Search the source directory for credits.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 40 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 71 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "Explored — 1 search", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 92 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": "The matching grep search is complete.", - "fg": [200, 211, 245, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 37 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 76 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 152ms", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [200, 211, 245, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [34, 36, 54, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...aabf-99f8-4b9d-9d17-28dc838b3ee5/files", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "● UI", "fg": [255, 117, 127, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/grouped-exploration.frame.json b/packages/lab/catalog/public/captures/tokyonight/grouped-exploration.frame.json deleted file mode 100644 index 6a3f365763e..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/grouped-exploration.frame.json +++ /dev/null @@ -1,547 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 47, 66, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [130, 170, 255, 255], "bg": [45, 47, 66, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 47, 66, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [200, 211, 245, 255], "bg": [45, 47, 66, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 47, 66, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": "The first glob search is complete.", - "fg": [200, 211, 245, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 34 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 79 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 690ms", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Find Rust files that do not exist.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 34 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "Explored — 1 search", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 92 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": "The empty glob search is complete.", - "fg": [200, 211, 245, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 34 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 79 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 165ms", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Explore TypeScript files and search them for credits together.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 62 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 49 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "Explored — 2 searches", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 21 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 90 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": "The grouped exploration is complete.", - "fg": [200, 211, 245, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 36 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 77 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 774ms", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [200, 211, 245, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [34, 36, 54, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...aabf-99f8-4b9d-9d17-28dc838b3ee5/files", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "● UI", "fg": [255, 117, 127, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/help.frame.json b/packages/lab/catalog/public/captures/tokyonight/help.frame.json deleted file mode 100644 index 4ad08cf4235..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/help.frame.json +++ /dev/null @@ -1,678 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [54, 70, 105, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "New", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "session", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 86 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Help", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 1, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 43 - }, - { "text": "esc/enter", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Press ctrl+p to see all available actions and commands ", - "fg": [130, 139, 184, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 55 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "in any context.", - "fg": [130, 139, 184, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 43 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 50 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [130, 170, 255, 255], "attributes": 0, "width": 3 }, - { "text": "ok", "fg": [26, 27, 38, 255], "bg": [130, 170, 255, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [130, 170, 255, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 2 }, - { "text": "Ask", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "anything...", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 11 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "\"Fix", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "a", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "TODO", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "in", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "the", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "codebase\"", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [79, 63, 105, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 38 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "╹", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [14, 15, 22, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { - "text": "/private/var/folde...-580163831713/files", - "fg": [54, 57, 76, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 40 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "agents", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "commands", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 111 - }, - { "text": "local", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [80, 96, 58, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "⦿", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 13, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/home.frame.json b/packages/lab/catalog/public/captures/tokyonight/home.frame.json deleted file mode 100644 index 93baa756c4a..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/home.frame.json +++ /dev/null @@ -1,616 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [130, 170, 255, 255], "bg": [34, 36, 54, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "New session", "fg": [200, 211, 245, 255], "bg": [34, 36, 54, 255], "attributes": 1, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 86 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 40 - }, - { - "text": " ", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 19 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ▄ ", - "fg": [200, 211, 245, 255], - "bg": [26, 27, 38, 255], - "attributes": 1, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 39 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 40 - }, - { - "text": "█▀▀█ █▀▀█ █▀▀█ █▀▀▄", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 19 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "█▀▀▀ █▀▀█ █▀▀█ █▀▀█", - "fg": [200, 211, 245, 255], - "bg": [26, 27, 38, 255], - "attributes": 1, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 39 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 40 - }, - { "text": "█", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [130, 139, 184, 255], "bg": [52, 55, 74, 255], "attributes": 0, "width": 2 }, - { "text": "█ █", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [130, 139, 184, 255], "bg": [52, 55, 74, 255], "attributes": 0, "width": 2 }, - { "text": "█ █", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { "text": "▀▀▀", "fg": [130, 139, 184, 255], "bg": [52, 55, 74, 255], "attributes": 0, "width": 3 }, - { "text": " █", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [130, 139, 184, 255], "bg": [52, 55, 74, 255], "attributes": 0, "width": 2 }, - { "text": "█", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "█", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [200, 211, 245, 255], "bg": [70, 73, 90, 255], "attributes": 1, "width": 3 }, - { "text": " █", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 1, "width": 2 }, - { "text": " ", "fg": [200, 211, 245, 255], "bg": [70, 73, 90, 255], "attributes": 1, "width": 2 }, - { "text": "█ █", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 1, "width": 3 }, - { "text": " ", "fg": [200, 211, 245, 255], "bg": [70, 73, 90, 255], "attributes": 1, "width": 2 }, - { "text": "█ █", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 1, "width": 3 }, - { "text": "▀▀▀", "fg": [200, 211, 245, 255], "bg": [70, 73, 90, 255], "attributes": 1, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 39 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 40 - }, - { - "text": "▀▀▀▀ █▀▀▀ ▀▀▀▀ ▀", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 16 - }, - { "text": "▀▀", "fg": [52, 55, 74, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "▀", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀ ▀▀▀▀ ▀▀▀▀ ▀▀▀▀", - "fg": [200, 211, 245, 255], - "bg": [26, 27, 38, 255], - "attributes": 1, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 39 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { - "text": "Ask anything... \"Fix a TODO in the codebase\"", - "fg": [130, 139, 184, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 44 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [200, 211, 245, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 38 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 22 - }, - { "text": "╹", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [34, 36, 54, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 22 - }, - { - "text": "/private/var/folde...-580163831713/files", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 40 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 111 - }, - { "text": "local", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/integration-picker.frame.json b/packages/lab/catalog/public/captures/tokyonight/integration-picker.frame.json deleted file mode 100644 index c58f65caa04..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/integration-picker.frame.json +++ /dev/null @@ -1,729 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [54, 70, 105, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "New", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "session", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 86 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { - "text": "Connect an integration", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 1, - "width": 22 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 27 - }, - { "text": "esc", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "Search", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 50 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "Popular", "fg": [255, 150, 108, 255], "bg": [30, 32, 48, 255], "attributes": 1, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 49 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [130, 170, 255, 255], "attributes": 0, "width": 3 }, - { "text": "OpenCode", "fg": [26, 27, 38, 255], "bg": [130, 170, 255, 255], "attributes": 1, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [130, 170, 255, 255], - "attributes": 0, - "width": 47 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "openai", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 50 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "github-copilot", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 42 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 2 }, - { "text": "Ask", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "Services", "fg": [255, 150, 108, 255], "bg": [30, 32, 48, 255], "attributes": 1, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 48 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "azure", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 51 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 2 }, - { "text": "Buil", "fg": [79, 63, 105, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { - "text": "cloudflare-ai-gateway", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 21 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 35 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "╹", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "▀▀▀▀▀▀", "fg": [14, 15, 22, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { - "text": "cloudflare-workers-ai", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 21 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 35 - }, - { "text": "▀▀▀▀▀▀▀▀", "fg": [14, 15, 22, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "/privat", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "Exa", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 53 - }, - { "text": "commands", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "Firecrawl", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 47 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 111 - }, - { "text": "local", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [80, 96, 58, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "○", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 13, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/mcp-list.frame.json b/packages/lab/catalog/public/captures/tokyonight/mcp-list.frame.json deleted file mode 100644 index 3cb22305226..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/mcp-list.frame.json +++ /dev/null @@ -1,676 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [54, 70, 105, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "New", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "session", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 86 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "MCP servers", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 1, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 38 - }, - { "text": "esc", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "Search", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 50 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { - "text": "No items available", - "fg": [130, 139, 184, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 38 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "connect space", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 13 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 43 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 2 }, - { "text": "Ask", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "anything...", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 11 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "\"Fix", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "a", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "TODO", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "in", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "the", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "codebase\"", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [79, 63, 105, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 38 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "╹", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [14, 15, 22, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { - "text": "/private/var/folde...-580163831713/files", - "fg": [54, 57, 76, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 40 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "agents", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "commands", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 111 - }, - { "text": "local", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [80, 96, 58, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "○", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 13, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/model-picker.frame.json b/packages/lab/catalog/public/captures/tokyonight/model-picker.frame.json deleted file mode 100644 index e20a123ef8a..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/model-picker.frame.json +++ /dev/null @@ -1,687 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [54, 70, 105, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "New", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "session", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 86 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "Select model", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 1, "width": 12 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 37 - }, - { "text": "esc", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "Search", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 50 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [130, 170, 255, 255], "attributes": 0, "width": 1 }, - { "text": "●", "fg": [26, 27, 38, 255], "bg": [130, 170, 255, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [130, 170, 255, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [26, 27, 38, 255], - "bg": [130, 170, 255, 255], - "attributes": 1, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [130, 170, 255, 255], - "attributes": 0, - "width": 40 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { - "text": "View all integrations", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 21 - }, - { "text": " ctrl+a", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 2 }, - { "text": "Ask", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "anything...", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 11 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "\"Fix", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "a", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "TODO", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "in", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "the", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "codebase\"", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [79, 63, 105, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 38 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "╹", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [14, 15, 22, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { - "text": "/private/var/folde...-580163831713/files", - "fg": [54, 57, 76, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 40 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "agents", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "commands", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 111 - }, - { "text": "local", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [80, 96, 58, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "○", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 13, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/pair.frame.json b/packages/lab/catalog/public/captures/tokyonight/pair.frame.json deleted file mode 100644 index 005a1b20c44..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/pair.frame.json +++ /dev/null @@ -1,813 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [54, 70, 105, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "New", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "session", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 86 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Pair", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 1, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 77 - }, - { "text": "esc", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "This device", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 30 - }, - { - "text": "█▀▀▀▀▀▀▀████▀██▀█▀██▀▀▀█▀██▀████▀██▀▀▀▀▀▀▀█", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "http://localhost:60112", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 22 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 19 - }, - { - "text": "█ █▀▀▀█ █▄▀▄ ██▀▄██▄▀ ▀▀▀▀▄▄▄▀▄ █▄█ █▀▀▀█ █", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 43 - }, - { - "text": "█ █ █ █▄▀▀▀ █▀ ▀█▄▄▀▀▄██▄▄▄▀█▀█ █ █ █ █", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "URLs", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 37 - }, - { - "text": "█ ▀▀▀▀▀ █ ▄ █▀█▀█▀█ ▄▀▄ █▀█▀▄ ▄ █ █ ▀▀▀▀▀ █", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "http://127.0.0.1:60112", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 22 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 19 - }, - { - "text": "█▀▀▀▀▀█▀▀▀ ▀ █▀▀█▄▀▄ ▄▄ █▀█▄▀▀ █ ▀█▀█▀█▀██", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 43 - }, - { - "text": "█▀██ ▀▄▀█ ▄▄▄█ ▀▀█ ▄▄▄ ▄▄█▀ ▀█▀▀▄▀ ▄▄▄ █▄▄█", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Username", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 33 - }, - { - "text": "█▀▀ ▄▄█▀▄ ▀ ▀▄▄▀▄ ▄▄▄█▄ █▀▀ █▀█▄ ▄▄▄█ ▀▄▄█", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "opencode", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 33 - }, - { - "text": "█▀ ▀▄▄█▀ ▄▀██▄██ ▀█▄█▀▄█████ ▄▀█▄▄▀ ▄▄ ██▄█", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 43 - }, - { - "text": "██▄█▀ █▀ ████ ▀ █▀█▀▄▄▀▀▄▀▄▄▀▀▀█▄▄██▄ █ ▄█", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Password", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 33 - }, - { - "text": "█▀▀▄ ▄▀▀▀█ ▄ █▄▀██ ▄███▄▀▄ ▀▀▀▄▄▀▀ ▀▄█▀▀▄█", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "************", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 12 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 29 - }, - { - "text": "█ ▄▄▄██▀█▀▄▀█▀█▄▀██▀ ▀▄▀▄ ▀ █▀▄ ▄█▀▄▀ ▄█", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 43 - }, - { - "text": "█▀█▄█▄ ▀▄██▄▀▀▀▄▄▄ █▄▄█▀███▄ █▄▄█▄▄▄█▄ ▄█", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Run `opencode service set ", - "fg": [130, 139, 184, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 15 - }, - { - "text": "█ ▀▀██▀▀▄▀ ▄ ▀▀ █▄▀▄▄▀▄▀▄▀▀▄▀▀▀ ██▄█ ▀▀ █", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "hostname 0.0.0.0` to access ", - "fg": [130, 139, 184, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 28 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 13 }, - { - "text": "█▄ ▄ ▀ ▀▀▀▄█▄▀ ▀▀ ▄▄██▀▄ █▄▀█▀█▄█▀▄▄▄▄▄ ▄█", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "the service remotely.", - "fg": [130, 139, 184, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 21 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 20 - }, - { - "text": "█▄ ▀█▄ ▀▄▀ █▄▄▄▀ ▄▄▄█▄ ▀█▀ █▄█▄ ▀██▀█ ▀ █", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 43 - }, - { - "text": "█ ▄ █▀▀▀▀█ █▄▀█ ▀▀ ▄▀ ▄▄█▀▄▀▄█ █▄▄▄█ █▀█▄█", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 43 - }, - { - "text": "█ ███ █▀ ▀▀█▄▀ █▀██▄▄ ▄▀▀███▀ █▀ ▀ ▀ ▄█", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 43 - }, - { - "text": "█▀▀▀▀▀▀▀█ █ ▄██▄▀▄█ ▄▀▄█▄▄██▀█▀▄ █▀█ ▀▀▀▄█", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 43 - }, - { - "text": "█ █▀▀▀█ █▀ █ ▀█▄ ▄█▀█▄▄ ▀▀▀ ▀███ ▀▀▀ █▀ ▄█", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 43 - }, - { - "text": "█ █ █ █ ▀▀▀ ▄▄ ██ ▀ ▄█▀▄▀▄ ▄███▀▄▀▄▀█▄█", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 43 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 111 - }, - { "text": "local", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [80, 96, 58, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "⦿", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 13, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/patch-created.frame.json b/packages/lab/catalog/public/captures/tokyonight/patch-created.frame.json deleted file mode 100644 index 3d25c714e49..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/patch-created.frame.json +++ /dev/null @@ -1,499 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [44, 46, 65, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [131, 171, 255, 255], "bg": [40, 42, 60, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [39, 41, 59, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [200, 211, 245, 255], "bg": [39, 41, 59, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [39, 41, 59, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Create a file, update the fixture, delete the created file, then attempt an invalid patch.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 90 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 21 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "# Created", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-262c4985-eb22-4331-8a12-5d0624455d3f/files/patched.txt", - "fg": [130, 139, 184, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 101 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 144, 154, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": " +", "fg": [184, 219, 135, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { - "text": "created by patch", - "fg": [200, 211, 245, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 16 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 89 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [200, 211, 245, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [34, 36, 54, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { "text": "⬝", "fg": [116, 95, 155, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [56, 50, 77, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [72, 62, 98, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [96, 80, 130, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [134, 109, 179, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [202, 161, 234, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "⬝", "fg": [116, 95, 155, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "esc ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 4 }, - { "text": "interrupt", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 58 - }, - { "text": "shift+tab ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/patch-deleted.frame.json b/packages/lab/catalog/public/captures/tokyonight/patch-deleted.frame.json deleted file mode 100644 index 2520ffa35eb..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/patch-deleted.frame.json +++ /dev/null @@ -1,557 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [46, 48, 68, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [133, 172, 255, 255], "bg": [41, 44, 63, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [38, 41, 59, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [200, 211, 245, 255], "bg": [37, 40, 58, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [37, 40, 58, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Create a file, update the fixture, delete the created file, then attempt an invalid patch.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 90 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 21 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "# Created", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-262c4985-eb22-4331-8a12-5d0624455d3f/files/patched.txt", - "fg": [130, 139, 184, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 101 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 144, 154, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": " +", "fg": [184, 219, 135, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { - "text": "created by patch", - "fg": [200, 211, 245, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 16 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 89 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "← Patched", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-262c4985-eb22-4331-8a12-5d0624455d3f/files/fixture.txt", - "fg": [130, 139, 184, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 101 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 144, 154, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": " -", "fg": [226, 106, 117, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [200, 211, 245, 255], "bg": [55, 34, 44, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [55, 34, 44, 255], - "attributes": 0, - "width": 99 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 144, 154, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": " +", "fg": [184, 219, 135, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { - "text": "updated by patch", - "fg": [200, 211, 245, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 16 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 89 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "# Deleted", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-262c4985-eb22-4331-8a12-5d0624455d3f/files/patched.txt", - "fg": [130, 139, 184, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 101 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "-1 line", "fg": [197, 59, 83, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 104 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [200, 211, 245, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [34, 36, 54, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { "text": "⬝⬝", "fg": [126, 103, 168, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "■", "fg": [56, 50, 77, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [72, 62, 98, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [96, 80, 130, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [134, 109, 179, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [202, 161, 234, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "esc ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 4 }, - { "text": "interrupt", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 58 - }, - { "text": "shift+tab ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "⦿ UI", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/patch-failed.frame.json b/packages/lab/catalog/public/captures/tokyonight/patch-failed.frame.json deleted file mode 100644 index 754d7201809..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/patch-failed.frame.json +++ /dev/null @@ -1,577 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [46, 49, 68, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [133, 172, 255, 255], "bg": [47, 50, 69, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [48, 51, 69, 255], "attributes": 0, "width": 1 }, - { "text": "O", "fg": [200, 211, 245, 255], "bg": [49, 51, 70, 255], "attributes": 1, "width": 1 }, - { "text": "p", "fg": [200, 211, 245, 255], "bg": [50, 52, 72, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [200, 211, 245, 255], "bg": [51, 53, 73, 255], "attributes": 1, "width": 1 }, - { "text": "n", "fg": [200, 211, 245, 255], "bg": [52, 54, 74, 255], "attributes": 1, "width": 1 }, - { "text": "C", "fg": [200, 211, 245, 255], "bg": [52, 55, 75, 255], "attributes": 1, "width": 1 }, - { "text": "o", "fg": [200, 211, 245, 255], "bg": [52, 56, 76, 255], "attributes": 1, "width": 1 }, - { "text": "d", "fg": [200, 211, 245, 255], "bg": [53, 56, 76, 255], "attributes": 1, "width": 1 }, - { "text": "e Dr", "fg": [200, 211, 245, 255], "bg": [53, 57, 77, 255], "attributes": 1, "width": 4 }, - { "text": "i", "fg": [200, 211, 245, 255], "bg": [51, 54, 73, 255], "attributes": 1, "width": 1 }, - { "text": "v", "fg": [200, 211, 245, 255], "bg": [47, 50, 69, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [200, 211, 245, 255], "bg": [44, 47, 66, 255], "attributes": 1, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [44, 47, 66, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [29, 31, 45, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [29, 31, 45, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "← Patched", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-262c4985-eb22-4331-8a12-5d0624455d3f/files/fixture.txt", - "fg": [130, 139, 184, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 101 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 144, 154, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": " -", "fg": [226, 106, 117, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [200, 211, 245, 255], "bg": [55, 34, 44, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [55, 34, 44, 255], - "attributes": 0, - "width": 99 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 144, 154, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": " +", "fg": [184, 219, 135, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { - "text": "updated by patch", - "fg": [200, 211, 245, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 16 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 89 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "# Deleted", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-262c4985-eb22-4331-8a12-5d0624455d3f/files/patched.txt", - "fg": [130, 139, 184, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 101 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "-1 line", "fg": [197, 59, 83, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 104 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "# Patch failed", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 14 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": "missing-patch.txt", - "fg": [130, 139, 184, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 17 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "patch verification failed: Failed to read file to update /private/var/folders/dd/", - "fg": [255, 117, 127, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 81 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 30 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "5fz89drs5p9_r0fk7rwqqnbr0000gn/T/opencode-drive/run-262c4985-eb22-4331-8a12-5d0624455d3f/files/missing-patch.", - "fg": [255, 117, 127, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 109 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "txt: file does not exist", - "fg": [255, 117, 127, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 24 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 87 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": "The patch file-change lifecycle is complete.", - "fg": [200, 211, 245, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 44 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 69 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 3.1s", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [200, 211, 245, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [34, 36, 54, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...4985-eb22-4331-8a12-5d0624455d3f/files", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "⦿ UI", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/patch-input-streaming.frame.json b/packages/lab/catalog/public/captures/tokyonight/patch-input-streaming.frame.json deleted file mode 100644 index bf40f52e3f7..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/patch-input-streaming.frame.json +++ /dev/null @@ -1,481 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [48, 50, 70, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [131, 171, 255, 255], "bg": [44, 47, 65, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [42, 45, 64, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [200, 211, 245, 255], "bg": [42, 45, 64, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [42, 45, 64, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Change fixture.txt from before to after.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 40 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 71 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "⠸", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "Patching", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 101 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [200, 211, 245, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [34, 36, 54, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { "text": "⬝⬝", "fg": [126, 103, 168, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "■", "fg": [56, 50, 77, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [72, 62, 98, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [96, 80, 130, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [134, 109, 179, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [202, 161, 234, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "esc ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 4 }, - { "text": "interrupt", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 58 - }, - { "text": "shift+tab ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "⦿ UI", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/patch-success.frame.json b/packages/lab/catalog/public/captures/tokyonight/patch-success.frame.json deleted file mode 100644 index 4b1621e2fbf..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/patch-success.frame.json +++ /dev/null @@ -1,509 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [35, 37, 55, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [130, 170, 255, 255], "bg": [35, 37, 55, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [35, 37, 55, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [200, 211, 245, 255], "bg": [35, 37, 55, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [35, 37, 55, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Change fixture.txt from before to after.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 40 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 71 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "← Patched", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-62cbf34a-2a28-4fe7-8255-580163831713/files/fixture.txt", - "fg": [130, 139, 184, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 101 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 144, 154, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": " -", "fg": [226, 106, 117, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [200, 211, 245, 255], "bg": [55, 34, 44, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [55, 34, 44, 255], - "attributes": 0, - "width": 99 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 144, 154, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": " +", "fg": [184, 219, 135, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "after", "fg": [200, 211, 245, 255], "bg": [32, 48, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 100 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": "The fixture was updated.", - "fg": [200, 211, 245, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 24 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 89 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 1.7s", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [200, 211, 245, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [34, 36, 54, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...f34a-2a28-4fe7-8255-580163831713/files", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "⦿ UI", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/patch-updated.frame.json b/packages/lab/catalog/public/captures/tokyonight/patch-updated.frame.json deleted file mode 100644 index 9f9f1dd3b4c..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/patch-updated.frame.json +++ /dev/null @@ -1,537 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 48, 67, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [132, 171, 255, 255], "bg": [42, 44, 63, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [40, 42, 61, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [200, 211, 245, 255], "bg": [40, 42, 61, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [40, 42, 61, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Create a file, update the fixture, delete the created file, then attempt an invalid patch.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 90 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 21 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "# Created", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-262c4985-eb22-4331-8a12-5d0624455d3f/files/patched.txt", - "fg": [130, 139, 184, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 101 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 144, 154, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": " +", "fg": [184, 219, 135, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { - "text": "created by patch", - "fg": [200, 211, 245, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 16 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 89 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "← Patched", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-262c4985-eb22-4331-8a12-5d0624455d3f/files/fixture.txt", - "fg": [130, 139, 184, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 101 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 144, 154, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": " -", "fg": [226, 106, 117, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [200, 211, 245, 255], "bg": [55, 34, 44, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [55, 34, 44, 255], - "attributes": 0, - "width": 99 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 144, 154, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": " +", "fg": [184, 219, 135, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { - "text": "updated by patch", - "fg": [200, 211, 245, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 16 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 89 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [200, 211, 245, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [34, 36, 54, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { "text": "⬝⬝", "fg": [126, 103, 168, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "■", "fg": [56, 50, 77, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [72, 62, 98, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [96, 80, 130, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [134, 109, 179, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [202, 161, 234, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "esc ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 4 }, - { "text": "interrupt", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 58 - }, - { "text": "shift+tab ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "⦿ UI", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/permission-always-confirmation.frame.json b/packages/lab/catalog/public/captures/tokyonight/permission-always-confirmation.frame.json deleted file mode 100644 index a58cab9ff69..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/permission-always-confirmation.frame.json +++ /dev/null @@ -1,495 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 47, 66, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [255, 150, 108, 255], "bg": [45, 47, 66, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 47, 66, 255], "attributes": 0, "width": 1 }, - { "text": "O", "fg": [200, 211, 245, 255], "bg": [45, 47, 66, 255], "attributes": 1, "width": 1 }, - { "text": "pe", "fg": [200, 211, 245, 255], "bg": [46, 48, 67, 255], "attributes": 1, "width": 2 }, - { "text": "n", "fg": [200, 211, 245, 255], "bg": [47, 49, 68, 255], "attributes": 1, "width": 1 }, - { "text": "C", "fg": [200, 211, 245, 255], "bg": [47, 50, 69, 255], "attributes": 1, "width": 1 }, - { "text": "o", "fg": [200, 211, 245, 255], "bg": [48, 51, 70, 255], "attributes": 1, "width": 1 }, - { "text": "d", "fg": [200, 211, 245, 255], "bg": [49, 52, 71, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [200, 211, 245, 255], "bg": [50, 53, 72, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [200, 211, 245, 255], "bg": [51, 54, 74, 255], "attributes": 1, "width": 1 }, - { "text": "D", "fg": [200, 211, 245, 255], "bg": [52, 55, 74, 255], "attributes": 1, "width": 1 }, - { "text": "r", "fg": [200, 211, 245, 255], "bg": [52, 55, 75, 255], "attributes": 1, "width": 1 }, - { "text": "i", "fg": [200, 211, 245, 255], "bg": [53, 56, 75, 255], "attributes": 1, "width": 1 }, - { "text": "ve", "fg": [200, 211, 245, 255], "bg": [54, 56, 76, 255], "attributes": 1, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [54, 57, 76, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [54, 57, 77, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [54, 56, 76, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 55, 74, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [47, 50, 69, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 47, 66, 255], "attributes": 0, "width": 10 }, - { "text": " + ", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Change fixture.txt from before to after.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 40 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 71 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "⠙", "fg": [255, 150, 108, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "Patching", "fg": [255, 150, 108, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "fixture.txt", "fg": [255, 150, 108, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 89 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "△", "fg": [255, 150, 108, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "Always allow", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 12 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 97 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "This will allow edit until OpenCode is restarted.", - "fg": [130, 139, 184, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 49 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 62 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [130, 170, 255, 255], "attributes": 0, "width": 1 }, - { "text": "Confirm", "fg": [26, 27, 38, 255], "bg": [130, 170, 255, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [130, 170, 255, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "Cancel", "fg": [200, 211, 245, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 68 - }, - { "text": "⇆ ", "fg": [200, 211, 245, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "select", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "enter ", "fg": [200, 211, 245, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 6 }, - { "text": "confirm", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "⦿ UI", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/permission-always-selected.frame.json b/packages/lab/catalog/public/captures/tokyonight/permission-always-selected.frame.json deleted file mode 100644 index 7f3d7e25cf4..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/permission-always-selected.frame.json +++ /dev/null @@ -1,546 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 47, 66, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [255, 150, 108, 255], "bg": [45, 47, 66, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 47, 66, 255], "attributes": 0, "width": 1 }, - { "text": "O", "fg": [200, 211, 245, 255], "bg": [45, 47, 66, 255], "attributes": 1, "width": 1 }, - { "text": "p", "fg": [200, 211, 245, 255], "bg": [45, 48, 67, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [200, 211, 245, 255], "bg": [45, 48, 68, 255], "attributes": 1, "width": 1 }, - { "text": "n", "fg": [200, 211, 245, 255], "bg": [46, 49, 68, 255], "attributes": 1, "width": 1 }, - { "text": "C", "fg": [200, 211, 245, 255], "bg": [47, 50, 69, 255], "attributes": 1, "width": 1 }, - { "text": "o", "fg": [200, 211, 245, 255], "bg": [48, 51, 71, 255], "attributes": 1, "width": 1 }, - { "text": "d", "fg": [200, 211, 245, 255], "bg": [49, 52, 72, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [200, 211, 245, 255], "bg": [50, 53, 72, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [200, 211, 245, 255], "bg": [51, 54, 73, 255], "attributes": 1, "width": 1 }, - { "text": "D", "fg": [200, 211, 245, 255], "bg": [52, 55, 74, 255], "attributes": 1, "width": 1 }, - { "text": "r", "fg": [200, 211, 245, 255], "bg": [53, 55, 75, 255], "attributes": 1, "width": 1 }, - { "text": "i", "fg": [200, 211, 245, 255], "bg": [53, 56, 76, 255], "attributes": 1, "width": 1 }, - { "text": "v", "fg": [200, 211, 245, 255], "bg": [54, 56, 76, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [200, 211, 245, 255], "bg": [54, 57, 77, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [54, 57, 77, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [53, 56, 76, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [49, 53, 72, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 48, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 47, 66, 255], "attributes": 0, "width": 10 }, - { "text": " + ", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Change fixture.txt from before to after.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 40 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 71 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "⠋", "fg": [255, 150, 108, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "Patching", "fg": [255, 150, 108, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "fixture.txt", "fg": [255, 150, 108, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 89 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "△", "fg": [255, 150, 108, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": "Permission required", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 90 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "→", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": "Edit private/var/folders/dd/5fz89drs5p9_r0fk7rwqqnbr0000gn/T/opencode-drive/run-62cbf34a-2a28-4fe7-8255-", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 104 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 6 }, - { - "text": "580163831713/files/fixture.txt", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 30 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 144, 154, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": " -", "fg": [226, 106, 117, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [200, 211, 245, 255], "bg": [55, 34, 44, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [55, 34, 44, 255], - "attributes": 0, - "width": 98 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 144, 154, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": " +", "fg": [184, 219, 135, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "after", "fg": [200, 211, 245, 255], "bg": [32, 48, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 99 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 3 }, - { "text": "Allow once", "fg": [200, 211, 245, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [130, 170, 255, 255], "attributes": 0, "width": 1 }, - { "text": "Allow always", "fg": [26, 27, 38, 255], "bg": [130, 170, 255, 255], "attributes": 0, "width": 12 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [130, 170, 255, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "Reject", "fg": [200, 211, 245, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 31 - }, - { "text": "ctrl+f ", "fg": [200, 211, 245, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 7 }, - { "text": "fullscreen", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "⇆ ", "fg": [200, 211, 245, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "select", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "enter ", "fg": [200, 211, 245, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 6 }, - { "text": "confirm", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "⦿ UI", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/permission-fullscreen.frame.json b/packages/lab/catalog/public/captures/tokyonight/permission-fullscreen.frame.json deleted file mode 100644 index a260bea32a8..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/permission-fullscreen.frame.json +++ /dev/null @@ -1,556 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [43, 46, 65, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [255, 150, 108, 255], "bg": [43, 46, 65, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [43, 46, 65, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCod", "fg": [200, 211, 245, 255], "bg": [43, 46, 65, 255], "attributes": 1, "width": 7 }, - { "text": "e D", "fg": [200, 211, 245, 255], "bg": [44, 47, 66, 255], "attributes": 1, "width": 3 }, - { "text": "ri", "fg": [200, 211, 245, 255], "bg": [45, 48, 67, 255], "attributes": 1, "width": 2 }, - { "text": "ve", "fg": [200, 211, 245, 255], "bg": [46, 49, 68, 255], "attributes": 1, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [46, 49, 68, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [47, 50, 68, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [47, 50, 69, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [47, 50, 68, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 48, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [43, 46, 65, 255], "attributes": 0, "width": 6 }, - { "text": " + ", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "△", "fg": [255, 150, 108, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": "Permission required", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 90 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "→", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": "Edit private/var/folders/dd/5fz89drs5p9_r0fk7rwqqnbr0000gn/T/opencode-drive/run-62cbf34a-2a28-4fe7-8255-", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 104 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 6 }, - { - "text": "580163831713/files/fixture.txt", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 30 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 144, 154, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": " -", "fg": [226, 106, 117, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [200, 211, 245, 255], "bg": [55, 34, 44, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [55, 34, 44, 255], - "attributes": 0, - "width": 98 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 144, 154, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": " +", "fg": [184, 219, 135, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "after", "fg": [200, 211, 245, 255], "bg": [32, 48, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 99 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 3 }, - { "text": "Allow once", "fg": [200, 211, 245, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 3 }, - { "text": "Allow always", "fg": [200, 211, 245, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 12 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [130, 170, 255, 255], "attributes": 0, "width": 1 }, - { "text": "Reject", "fg": [26, 27, 38, 255], "bg": [130, 170, 255, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [130, 170, 255, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 32 - }, - { "text": "ctrl+f ", "fg": [200, 211, 245, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 7 }, - { "text": "minimize", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "⇆ ", "fg": [200, 211, 245, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "select", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "enter ", "fg": [200, 211, 245, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 6 }, - { "text": "confirm", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "⦿ UI", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/permission-prompt.frame.json b/packages/lab/catalog/public/captures/tokyonight/permission-prompt.frame.json deleted file mode 100644 index ab59c5ab2af..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/permission-prompt.frame.json +++ /dev/null @@ -1,545 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [44, 46, 65, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [255, 150, 108, 255], "bg": [44, 46, 65, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [44, 46, 65, 255], "attributes": 0, "width": 1 }, - { "text": "O", "fg": [200, 211, 245, 255], "bg": [44, 46, 65, 255], "attributes": 1, "width": 1 }, - { "text": "p", "fg": [200, 211, 245, 255], "bg": [45, 47, 66, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [200, 211, 245, 255], "bg": [46, 48, 67, 255], "attributes": 1, "width": 1 }, - { "text": "n", "fg": [200, 211, 245, 255], "bg": [46, 48, 68, 255], "attributes": 1, "width": 1 }, - { "text": "C", "fg": [200, 211, 245, 255], "bg": [46, 49, 69, 255], "attributes": 1, "width": 1 }, - { "text": "o", "fg": [200, 211, 245, 255], "bg": [47, 51, 70, 255], "attributes": 1, "width": 1 }, - { "text": "d", "fg": [200, 211, 245, 255], "bg": [48, 52, 71, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [200, 211, 245, 255], "bg": [49, 53, 72, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [200, 211, 245, 255], "bg": [50, 54, 73, 255], "attributes": 1, "width": 1 }, - { "text": "D", "fg": [200, 211, 245, 255], "bg": [51, 54, 74, 255], "attributes": 1, "width": 1 }, - { "text": "r", "fg": [200, 211, 245, 255], "bg": [52, 55, 74, 255], "attributes": 1, "width": 1 }, - { "text": "i", "fg": [200, 211, 245, 255], "bg": [53, 55, 75, 255], "attributes": 1, "width": 1 }, - { "text": "ve", "fg": [200, 211, 245, 255], "bg": [53, 56, 76, 255], "attributes": 1, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [53, 56, 76, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 54, 74, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [47, 51, 70, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 47, 66, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [44, 46, 65, 255], "attributes": 0, "width": 10 }, - { "text": " + ", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Change fixture.txt from before to after.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 40 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 71 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "⠋", "fg": [255, 150, 108, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "Patching", "fg": [255, 150, 108, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "fixture.txt", "fg": [255, 150, 108, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 89 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "△", "fg": [255, 150, 108, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": "Permission required", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 90 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "→", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": "Edit private/var/folders/dd/5fz89drs5p9_r0fk7rwqqnbr0000gn/T/opencode-drive/run-62cbf34a-2a28-4fe7-8255-", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 104 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 6 }, - { - "text": "580163831713/files/fixture.txt", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 30 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 144, 154, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": " -", "fg": [226, 106, 117, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [200, 211, 245, 255], "bg": [55, 34, 44, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [55, 34, 44, 255], - "attributes": 0, - "width": 98 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 144, 154, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": " +", "fg": [184, 219, 135, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "after", "fg": [200, 211, 245, 255], "bg": [32, 48, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 99 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [130, 170, 255, 255], "attributes": 0, "width": 1 }, - { "text": "Allow once", "fg": [26, 27, 38, 255], "bg": [130, 170, 255, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [130, 170, 255, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "Allow always", "fg": [200, 211, 245, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 12 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 3 }, - { "text": "Reject", "fg": [200, 211, 245, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 31 - }, - { "text": "ctrl+f ", "fg": [200, 211, 245, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 7 }, - { "text": "fullscreen", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "⇆ ", "fg": [200, 211, 245, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "select", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "enter ", "fg": [200, 211, 245, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 6 }, - { "text": "confirm", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "⦿ UI", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/permission-reject-selected.frame.json b/packages/lab/catalog/public/captures/tokyonight/permission-reject-selected.frame.json deleted file mode 100644 index 2350c3b6539..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/permission-reject-selected.frame.json +++ /dev/null @@ -1,543 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 47, 66, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [255, 150, 108, 255], "bg": [45, 47, 66, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 47, 66, 255], "attributes": 0, "width": 1 }, - { "text": "Op", "fg": [200, 211, 245, 255], "bg": [45, 47, 66, 255], "attributes": 1, "width": 2 }, - { "text": "en", "fg": [200, 211, 245, 255], "bg": [46, 48, 67, 255], "attributes": 1, "width": 2 }, - { "text": "C", "fg": [200, 211, 245, 255], "bg": [47, 49, 68, 255], "attributes": 1, "width": 1 }, - { "text": "o", "fg": [200, 211, 245, 255], "bg": [47, 50, 69, 255], "attributes": 1, "width": 1 }, - { "text": "d", "fg": [200, 211, 245, 255], "bg": [48, 51, 70, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [200, 211, 245, 255], "bg": [49, 52, 71, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [200, 211, 245, 255], "bg": [50, 53, 73, 255], "attributes": 1, "width": 1 }, - { "text": "D", "fg": [200, 211, 245, 255], "bg": [51, 54, 74, 255], "attributes": 1, "width": 1 }, - { "text": "ri", "fg": [200, 211, 245, 255], "bg": [52, 55, 74, 255], "attributes": 1, "width": 2 }, - { "text": "v", "fg": [200, 211, 245, 255], "bg": [53, 55, 75, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [200, 211, 245, 255], "bg": [53, 56, 76, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [54, 56, 76, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [53, 55, 75, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [49, 53, 72, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [46, 48, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 47, 66, 255], "attributes": 0, "width": 9 }, - { "text": " + ", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Change fixture.txt from before to after.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 40 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 71 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "⠙", "fg": [255, 150, 108, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "Patching", "fg": [255, 150, 108, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "fixture.txt", "fg": [255, 150, 108, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 89 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "△", "fg": [255, 150, 108, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": "Permission required", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 90 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "→", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": "Edit private/var/folders/dd/5fz89drs5p9_r0fk7rwqqnbr0000gn/T/opencode-drive/run-62cbf34a-2a28-4fe7-8255-", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 104 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 6 }, - { - "text": "580163831713/files/fixture.txt", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 30 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 144, 154, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": " -", "fg": [226, 106, 117, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [200, 211, 245, 255], "bg": [55, 34, 44, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [55, 34, 44, 255], - "attributes": 0, - "width": 98 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 144, 154, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": " +", "fg": [184, 219, 135, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "after", "fg": [200, 211, 245, 255], "bg": [32, 48, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 99 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 3 }, - { "text": "Allow once", "fg": [200, 211, 245, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 3 }, - { "text": "Allow always", "fg": [200, 211, 245, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 12 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [130, 170, 255, 255], "attributes": 0, "width": 1 }, - { "text": "Reject", "fg": [26, 27, 38, 255], "bg": [130, 170, 255, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [130, 170, 255, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 30 - }, - { "text": "ctrl+f ", "fg": [200, 211, 245, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 7 }, - { "text": "fullscreen", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "⇆ ", "fg": [200, 211, 245, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "select", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "enter ", "fg": [200, 211, 245, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 6 }, - { "text": "confirm", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "⦿ UI", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/question-awaiting-form.frame.json b/packages/lab/catalog/public/captures/tokyonight/question-awaiting-form.frame.json deleted file mode 100644 index e79e8698e4a..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/question-awaiting-form.frame.json +++ /dev/null @@ -1,539 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 47, 66, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [255, 150, 108, 255], "bg": [45, 47, 66, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 47, 66, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [200, 211, 245, 255], "bg": [45, 47, 66, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 47, 66, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Ask me which runtime and validation mode to use.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 48 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 63 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "Asked 2 questions", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 17 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 94 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Questions", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 102 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Runtime", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": "Validation", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": "Confirm", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 81 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Which runtime should the catalog fixture use?", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 45 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 66 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "1.", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "Bun", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 105 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { - "text": "Use the repository's configured runtime.", - "fg": [130, 139, 184, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 40 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 68 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "2.", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "Node", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 104 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { - "text": "Use the Node.js compatibility runtime.", - "fg": [130, 139, 184, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 38 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 70 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "3.", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": "Type your own answer", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 20 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "⇆ ", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "tab", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "↑↓ ", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": "select", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "enter ", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 6 }, - { "text": "confirm", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "esc ", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "dismiss", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 67 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/question-denied.frame.json b/packages/lab/catalog/public/captures/tokyonight/question-denied.frame.json deleted file mode 100644 index 78fc1b4a0c8..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/question-denied.frame.json +++ /dev/null @@ -1,582 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [255, 150, 108, 255], "bg": [34, 36, 54, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [200, 211, 245, 255], "bg": [34, 36, 54, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [29, 31, 45, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [29, 31, 45, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Which runtime should the catalog fixture use?", - "fg": [130, 139, 184, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 45 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 66 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Bun", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 108 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Which validation should run?", - "fg": [130, 139, 184, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 83 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Focused", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 104 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": "The catalog answers were submitted.", - "fg": [200, 211, 245, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 35 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 78 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 7.5s", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Ask one more runtime question that I will dismiss.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 50 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 61 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "Asked 1 question", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 16 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 95 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Questions", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 102 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Which runtime should the catalog fixture use?", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 45 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 66 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "1.", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "Bun", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 105 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { - "text": "Use the repository's configured runtime.", - "fg": [130, 139, 184, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 40 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 68 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "2.", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "Node", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 104 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { - "text": "Use the Node.js compatibility runtime.", - "fg": [130, 139, 184, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 38 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 70 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "3.", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": "Type your own answer", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 20 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "↑↓ ", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": "select", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "enter ", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 6 }, - { "text": "submit", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "esc ", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "dismiss", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 75 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/question-input-streaming.frame.json b/packages/lab/catalog/public/captures/tokyonight/question-input-streaming.frame.json deleted file mode 100644 index 3ffe249b86b..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/question-input-streaming.frame.json +++ /dev/null @@ -1,478 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [46, 50, 69, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [131, 170, 255, 255], "bg": [44, 46, 65, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [43, 45, 64, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [200, 211, 245, 255], "bg": [43, 45, 64, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [43, 45, 64, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Ask me which runtime and validation mode to use.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 48 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 63 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "⠸", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "Asking questions...", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 92 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [200, 211, 245, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [34, 36, 54, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { "text": "⬝⬝", "fg": [126, 103, 168, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "■", "fg": [56, 50, 77, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [72, 62, 98, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [96, 80, 130, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [134, 109, 179, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [202, 161, 234, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "esc ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 4 }, - { "text": "interrupt", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 58 - }, - { "text": "shift+tab ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/question-prompt.frame.json b/packages/lab/catalog/public/captures/tokyonight/question-prompt.frame.json deleted file mode 100644 index 6303e38a30c..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/question-prompt.frame.json +++ /dev/null @@ -1,586 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 47, 66, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [255, 150, 108, 255], "bg": [45, 47, 66, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 47, 66, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [200, 211, 245, 255], "bg": [45, 47, 66, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 47, 66, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "← Patched", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-62cbf34a-2a28-4fe7-8255-580163831713/files/fixture.txt", - "fg": [130, 139, 184, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 101 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 144, 154, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": " -", "fg": [226, 106, 117, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [200, 211, 245, 255], "bg": [55, 34, 44, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [55, 34, 44, 255], - "attributes": 0, - "width": 99 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 144, 154, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": " +", "fg": [184, 219, 135, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "after", "fg": [200, 211, 245, 255], "bg": [32, 48, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 100 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": "The fixture was updated.", - "fg": [200, 211, 245, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 24 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 89 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 1.7s", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Ask me about the fixture direction.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 35 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "Asked 1 question", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 16 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 95 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Questions", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 102 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Which direction should the fixture take?", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 40 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 71 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "1.", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": "Keep it minimal (Recommended)", - "fg": [130, 170, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { - "text": "Small deterministic fixture", - "fg": [130, 139, 184, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 27 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 81 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "2.", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": "Expand coverage", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 93 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { - "text": "Add more scripted states", - "fg": [130, 139, 184, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 24 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 84 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "3.", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": "Type your own answer", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 20 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "↑↓ ", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": "select", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "enter ", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 6 }, - { "text": "submit", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "esc ", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "dismiss", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 75 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "⦿ UI", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/question-review.frame.json b/packages/lab/catalog/public/captures/tokyonight/question-review.frame.json deleted file mode 100644 index 13393129221..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/question-review.frame.json +++ /dev/null @@ -1,498 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 47, 66, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [255, 150, 108, 255], "bg": [45, 47, 66, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 47, 66, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [200, 211, 245, 255], "bg": [45, 47, 66, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 47, 66, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Ask me which runtime and validation mode to use.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 48 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 63 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "Asked 2 questions", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 17 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 94 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Questions", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 102 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Runtime", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": "Validation", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": "Confirm", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 81 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Review", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 105 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Runtime:", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "Bun", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 99 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Validation:", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "Focused", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 92 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "⇆ ", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "tab", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "↑↓ ", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": "scroll", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "enter ", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 6 }, - { "text": "submit", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "esc ", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "dismiss", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 68 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/question-succeeded.frame.json b/packages/lab/catalog/public/captures/tokyonight/question-succeeded.frame.json deleted file mode 100644 index 99b72a2f337..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/question-succeeded.frame.json +++ /dev/null @@ -1,525 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [44, 46, 65, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [130, 170, 255, 255], "bg": [44, 46, 65, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [44, 46, 65, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [200, 211, 245, 255], "bg": [44, 46, 65, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [44, 46, 65, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Ask me which runtime and validation mode to use.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 48 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 63 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "# Questions", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 100 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Which runtime should the catalog fixture use?", - "fg": [130, 139, 184, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 45 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 66 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Bun", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 108 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Which validation should run?", - "fg": [130, 139, 184, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 83 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Focused", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 104 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": "The catalog answers were submitted.", - "fg": [200, 211, 245, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 35 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 78 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 7.5s", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [200, 211, 245, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [34, 36, 54, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...b9ae-f3d0-427c-b8f1-b81bab991fbe/files", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/read-denied.frame.json b/packages/lab/catalog/public/captures/tokyonight/read-denied.frame.json deleted file mode 100644 index 46e6cc818ec..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/read-denied.frame.json +++ /dev/null @@ -1,575 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [44, 47, 66, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [255, 150, 108, 255], "bg": [44, 47, 66, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [44, 47, 66, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [200, 211, 245, 255], "bg": [44, 47, 66, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [44, 47, 66, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [101, 108, 143, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "Explored", "fg": [101, 108, 143, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "—", "fg": [101, 108, 143, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [101, 108, 143, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "read", "fg": [101, 108, 143, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 94 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": "The fixture read succeeded.", - "fg": [200, 211, 245, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 27 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 86 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 502ms", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Now try to read a missing file.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 31 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 80 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "Explored — 1 read", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 17 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 94 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": "The missing-file read failed as expected.", - "fg": [200, 211, 245, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 41 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 72 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 161ms", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Now read the ledger file.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 86 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "⠋", "fg": [255, 150, 108, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "Read src/ledger.ts", - "fg": [255, 150, 108, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 93 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "△", "fg": [255, 150, 108, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": "Permission required", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 90 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "→", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": "Read src/ledger.ts", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 89 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Path: src/ledger.ts", - "fg": [130, 139, 184, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 92 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [130, 170, 255, 255], "attributes": 0, "width": 1 }, - { "text": "Allow once", "fg": [26, 27, 38, 255], "bg": [130, 170, 255, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [130, 170, 255, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "Allow always", "fg": [200, 211, 245, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 12 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 3 }, - { "text": "Reject", "fg": [200, 211, 245, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 31 - }, - { "text": "ctrl+f ", "fg": [200, 211, 245, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 7 }, - { "text": "fullscreen", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "⇆ ", "fg": [200, 211, 245, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "select", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "enter ", "fg": [200, 211, 245, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 6 }, - { "text": "confirm", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/read-input-streaming.frame.json b/packages/lab/catalog/public/captures/tokyonight/read-input-streaming.frame.json deleted file mode 100644 index 6a321b9782a..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/read-input-streaming.frame.json +++ /dev/null @@ -1,477 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [44, 47, 66, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [130, 170, 255, 255], "bg": [44, 47, 66, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [44, 47, 66, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [200, 211, 245, 255], "bg": [44, 47, 66, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [44, 47, 66, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Read the fixture file.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 22 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 89 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "⠹", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "Exploring — 1 read", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 93 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [200, 211, 245, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [34, 36, 54, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { "text": "■", "fg": [72, 62, 98, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [96, 80, 130, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [134, 109, 179, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [202, 161, 234, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "⬝⬝⬝", "fg": [96, 80, 129, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "esc ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 4 }, - { "text": "interrupt", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 58 - }, - { "text": "shift+tab ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/read-permission.frame.json b/packages/lab/catalog/public/captures/tokyonight/read-permission.frame.json deleted file mode 100644 index ce4769a9e06..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/read-permission.frame.json +++ /dev/null @@ -1,504 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [47, 49, 68, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [255, 150, 108, 255], "bg": [43, 47, 65, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [42, 45, 63, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [200, 211, 245, 255], "bg": [42, 45, 63, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [42, 45, 63, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Read the fixture file.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 22 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 89 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "⠋", "fg": [255, 150, 108, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "Read fixture.txt", - "fg": [255, 150, 108, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 16 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 95 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "△", "fg": [255, 150, 108, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": "Permission required", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 19 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 90 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "→", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": "Read fixture.txt", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 16 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 91 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Path: fixture.txt", - "fg": [130, 139, 184, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 17 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 94 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [130, 170, 255, 255], "attributes": 0, "width": 1 }, - { "text": "Allow once", "fg": [26, 27, 38, 255], "bg": [130, 170, 255, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [130, 170, 255, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "Allow always", "fg": [200, 211, 245, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 12 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 3 }, - { "text": "Reject", "fg": [200, 211, 245, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 31 - }, - { "text": "ctrl+f ", "fg": [200, 211, 245, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 7 }, - { "text": "fullscreen", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "⇆ ", "fg": [200, 211, 245, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "select", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "enter ", "fg": [200, 211, 245, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 6 }, - { "text": "confirm", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/read-succeeded.frame.json b/packages/lab/catalog/public/captures/tokyonight/read-succeeded.frame.json deleted file mode 100644 index 0f6a4ae4bd5..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/read-succeeded.frame.json +++ /dev/null @@ -1,486 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [40, 41, 59, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [130, 170, 255, 255], "bg": [40, 41, 59, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [40, 41, 59, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [200, 211, 245, 255], "bg": [40, 41, 59, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [40, 41, 59, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Read the fixture file.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 22 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 89 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "→", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "Explored — 1 read", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 17 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 94 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": "The fixture read succeeded.", - "fg": [200, 211, 245, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 27 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 86 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 502ms", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [200, 211, 245, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [34, 36, 54, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...89bd-2d74-404f-a1f2-8caf05c0ce33/files", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/session-export.frame.json b/packages/lab/catalog/public/captures/tokyonight/session-export.frame.json deleted file mode 100644 index b89e58ce4cf..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/session-export.frame.json +++ /dev/null @@ -1,647 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [54, 70, 105, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "Drive", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 84 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 13, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Change", "fg": [82, 87, 101, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "fixture.txt", "fg": [82, 87, 101, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 11 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "from", "fg": [82, 87, 101, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [82, 87, 101, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "to", "fg": [82, 87, 101, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "after.", "fg": [82, 87, 101, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 13, 20, 255], - "attributes": 0, - "width": 71 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 13, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [11, 11, 16, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 13, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [11, 11, 16, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "←", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "Patched", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-62cbf34a-2a28-4fe7-8255-580163831713/files/fixture.txt", - "fg": [54, 57, 76, 255], - "bg": [12, 13, 20, 255], - "attributes": 0, - "width": 101 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [11, 11, 16, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 13, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [11, 11, 16, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [59, 59, 63, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": "-", "fg": [93, 44, 48, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [82, 87, 101, 255], "bg": [23, 14, 18, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [23, 14, 18, 255], "attributes": 0, "width": 12 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [23, 14, 18, 255], - "attributes": 0, - "width": 27 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [11, 11, 16, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [59, 59, 63, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [76, 90, 56, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": "after", "fg": [82, 87, 101, 255], "bg": [13, 20, 24, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [13, 20, 24, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Export session", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 39 - }, - { "text": "esc", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [13, 20, 24, 255], - "attributes": 0, - "width": 27 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [11, 11, 16, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 13, 20, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 13, 20, 255], - "attributes": 0, - "width": 27 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Export as:", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "◉ Markdown", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": "○ JSON", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 27 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 5 }, - { "text": "The", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "fixture", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "was", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "updated.", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "[x]", "fg": [130, 170, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": "Include thinking", - "fg": [130, 170, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 16 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 38 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 31 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 4 }, - { "text": "Copy", "fg": [200, 211, 245, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": "Export", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [79, 63, 105, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [14, 15, 22, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...f34a-2a28-4fe7-8255-580163831713/files", - "fg": [54, 57, 76, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "agents", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "commands", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [80, 96, 58, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "⦿", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 13, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/session-fork.frame.json b/packages/lab/catalog/public/captures/tokyonight/session-fork.frame.json deleted file mode 100644 index 1aa1ae4707f..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/session-fork.frame.json +++ /dev/null @@ -1,574 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [54, 70, 105, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "Drive", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 84 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 13, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Change", "fg": [82, 87, 101, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "fixture.txt", "fg": [82, 87, 101, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 11 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "from", "fg": [82, 87, 101, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [82, 87, 101, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "to", "fg": [82, 87, 101, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "after.", "fg": [82, 87, 101, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 13, 20, 255], - "attributes": 0, - "width": 71 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 13, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [11, 11, 16, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 13, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [11, 11, 16, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "←", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "Patched", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-62cbf34a-2a28-4fe7-8255-580163831713/files/fixture.txt", - "fg": [54, 57, 76, 255], - "bg": [12, 13, 20, 255], - "attributes": 0, - "width": 101 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [11, 11, 16, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 13, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [11, 11, 16, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [59, 59, 63, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": "-", "fg": [93, 44, 48, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": "befo", "fg": [82, 87, 101, 255], "bg": [23, 14, 18, 255], "attributes": 0, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [23, 14, 18, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [11, 11, 16, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [59, 59, 63, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [76, 90, 56, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": "afte", "fg": [82, 87, 101, 255], "bg": [13, 20, 24, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "Fork session", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 1, "width": 12 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 65 - }, - { "text": "esc", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [13, 20, 24, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [11, 11, 16, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 12 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "Search", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 78 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 5 }, - { "text": "The", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "fixtur", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [130, 170, 255, 255], "attributes": 0, "width": 1 }, - { "text": "●", "fg": [26, 27, 38, 255], "bg": [130, 170, 255, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [130, 170, 255, 255], "attributes": 0, "width": 1 }, - { "text": "Full session", "fg": [26, 27, 38, 255], "bg": [130, 170, 255, 255], "attributes": 1, "width": 12 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [130, 170, 255, 255], - "attributes": 0, - "width": 71 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "Si", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { - "text": "Change fixture.txt from before to after.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 40 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 33 - }, - { "text": "3:26 PM", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [79, 63, 105, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [14, 15, 22, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...f34a-2a28-4fe7-8255-580163831713/files", - "fg": [54, 57, 76, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "agents", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "commands", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [80, 96, 58, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "⦿", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 13, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/session-picker-populated.frame.json b/packages/lab/catalog/public/captures/tokyonight/session-picker-populated.frame.json deleted file mode 100644 index 9f47c30e76a..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/session-picker-populated.frame.json +++ /dev/null @@ -1,620 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 23, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [54, 70, 105, 255], "bg": [14, 15, 23, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 23, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode", "fg": [82, 87, 101, 255], "bg": [14, 15, 23, 255], "attributes": 1, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 23, 255], "attributes": 0, "width": 1 }, - { "text": "DriveCatalog", "fg": [82, 87, 101, 255], "bg": [14, 15, 23, 255], "attributes": 1, "width": 12 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 23, 255], "attributes": 0, "width": 1 }, - { "text": "cap", "fg": [82, 87, 101, 255], "bg": [14, 15, 23, 255], "attributes": 1, "width": 3 }, - { "text": "t", "fg": [69, 72, 85, 255], "bg": [14, 15, 23, 255], "attributes": 1, "width": 1 }, - { "text": "u", "fg": [52, 55, 66, 255], "bg": [14, 15, 23, 255], "attributes": 1, "width": 1 }, - { "text": "r", "fg": [36, 38, 47, 255], "bg": [14, 15, 23, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [19, 21, 28, 255], "bg": [14, 15, 23, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 84 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [11, 11, 16, 255], "bg": [12, 13, 19, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 19, 255], "attributes": 0, "width": 2 }, - { "text": "←", "fg": [42, 44, 59, 255], "bg": [12, 13, 19, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 19, 255], "attributes": 0, "width": 1 }, - { "text": "Patched", "fg": [42, 44, 59, 255], "bg": [12, 13, 19, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 19, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-62cbf34a-2a28-4fe7-8255-580163831713/files/fixture.txt", - "fg": [42, 44, 59, 255], - "bg": [12, 13, 19, 255], - "attributes": 0, - "width": 101 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [11, 11, 16, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 13, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [11, 11, 16, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [59, 59, 63, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": "-", "fg": [93, 44, 48, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [82, 87, 101, 255], "bg": [23, 14, 18, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [23, 14, 18, 255], - "attributes": 0, - "width": 99 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [11, 11, 16, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [59, 59, 63, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [76, 90, 56, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": "after", "fg": [82, 87, 101, 255], "bg": [13, 20, 24, 255], "attributes": 0, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [13, 20, 24, 255], - "attributes": 0, - "width": 100 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [11, 11, 16, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 13, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 5 }, - { "text": "The", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "fixture", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "was", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "updated.", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 89 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "Si", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "Sessions", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 1, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 69 - }, - { "text": "esc", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 12 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Ask", "fg": [82, 87, 101, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "me", "fg": [82, 87, 101, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "abo", "fg": [82, 87, 101, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "Search", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 78 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 12 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "Today", "fg": [255, 150, 108, 255], "bg": [30, 32, 48, 255], "attributes": 1, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [11, 11, 16, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 12 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [130, 170, 255, 255], "attributes": 0, "width": 1 }, - { "text": "●", "fg": [26, 27, 38, 255], "bg": [130, 170, 255, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [130, 170, 255, 255], "attributes": 0, "width": 1 }, - { - "text": "OpenCode DriveCatalog capture session", - "fg": [26, 27, 38, 255], - "bg": [130, 170, 255, 255], - "attributes": 1, - "width": 37 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [130, 170, 255, 255], - "attributes": 0, - "width": 46 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [11, 11, 16, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "#", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "Question", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [11, 11, 16, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 12 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "delete", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 6 }, - { "text": " ctrl+d", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "rename", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 6 }, - { "text": " ctrl+r", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 35 - }, - { "text": "all projects", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 1, "width": 12 }, - { "text": " ", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "ctrl+a", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [11, 11, 16, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Which", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "dire", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [11, 11, 16, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Keep", "fg": [82, 87, 101, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "it", "fg": [82, 87, 101, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "minimal", "fg": [82, 87, 101, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "(Recommended)", "fg": [82, 87, 101, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 13 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 13, 20, 255], - "attributes": 0, - "width": 82 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [11, 11, 16, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 13, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 5 }, - { "text": "Keeping", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "the", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "fixture", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "minimal.", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 85 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "160ms", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [79, 63, 105, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [14, 15, 22, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...f34a-2a28-4fe7-8255-580163831713/files", - "fg": [54, 57, 76, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "agents", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "commands", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [80, 96, 58, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "⦿", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 13, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/session-picker.frame.json b/packages/lab/catalog/public/captures/tokyonight/session-picker.frame.json deleted file mode 100644 index 4e399edd377..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/session-picker.frame.json +++ /dev/null @@ -1,628 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [54, 70, 105, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "New", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "session", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 86 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "Sessions", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 1, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 69 - }, - { "text": "esc", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "Search", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 78 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { - "text": "No sessions available", - "fg": [130, 139, 184, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 21 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 63 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "delete ctrl+d", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "rename ctrl+r", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 13 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 35 - }, - { "text": "all projects", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 1, "width": 12 }, - { "text": " ", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "ctrl+a", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 2 }, - { "text": "Ask", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "anything...", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 11 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "\"Fix", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "a", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "TODO", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "in", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "the", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "codebase\"", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [79, 63, 105, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 38 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "╹", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [14, 15, 22, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { - "text": "/private/var/folde...-580163831713/files", - "fg": [54, 57, 76, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 40 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "agents", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "commands", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 111 - }, - { "text": "local", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [80, 96, 58, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "⦿", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 13, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/session-rename.frame.json b/packages/lab/catalog/public/captures/tokyonight/session-rename.frame.json deleted file mode 100644 index 1568636c4e3..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/session-rename.frame.json +++ /dev/null @@ -1,602 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [54, 70, 105, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "Drive", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 84 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 13, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Change", "fg": [82, 87, 101, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "fixture.txt", "fg": [82, 87, 101, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 11 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "from", "fg": [82, 87, 101, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [82, 87, 101, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "to", "fg": [82, 87, 101, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "after.", "fg": [82, 87, 101, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 13, 20, 255], - "attributes": 0, - "width": 71 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 13, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [11, 11, 16, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 13, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [11, 11, 16, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "←", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "Patched", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-62cbf34a-2a28-4fe7-8255-580163831713/files/fixture.txt", - "fg": [54, 57, 76, 255], - "bg": [12, 13, 20, 255], - "attributes": 0, - "width": 101 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [11, 11, 16, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 13, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [11, 11, 16, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [59, 59, 63, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": "-", "fg": [93, 44, 48, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [82, 87, 101, 255], "bg": [23, 14, 18, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [23, 14, 18, 255], "attributes": 0, "width": 12 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [23, 14, 18, 255], - "attributes": 0, - "width": 27 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [11, 11, 16, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [59, 59, 63, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [76, 90, 56, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": "after", "fg": [82, 87, 101, 255], "bg": [13, 20, 24, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [13, 20, 24, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Rename session", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 39 - }, - { "text": "esc", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [13, 20, 24, 255], - "attributes": 0, - "width": 27 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [11, 11, 16, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 13, 20, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 13, 20, 255], - "attributes": 0, - "width": 27 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "OpenCode Drive", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 44 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 5 }, - { "text": "The", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "fixture", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "was", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "updated.", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "enter ", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 6 }, - { "text": "submit", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 46 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [79, 63, 105, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [14, 15, 22, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...f34a-2a28-4fe7-8255-580163831713/files", - "fg": [54, 57, 76, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "agents", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "commands", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [80, 96, 58, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "⦿", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 13, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/session-tabs-idle.frame.json b/packages/lab/catalog/public/captures/tokyonight/session-tabs-idle.frame.json deleted file mode 100644 index 2e89dc9d891..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/session-tabs-idle.frame.json +++ /dev/null @@ -1,483 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [46, 49, 67, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [140, 176, 254, 255], "bg": [46, 49, 67, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [46, 49, 67, 255], "attributes": 0, "width": 1 }, - { "text": "O", "fg": [200, 211, 245, 255], "bg": [46, 49, 67, 255], "attributes": 1, "width": 1 }, - { "text": "p", "fg": [200, 211, 245, 255], "bg": [44, 46, 64, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [200, 211, 245, 255], "bg": [39, 41, 59, 255], "attributes": 1, "width": 1 }, - { "text": "nCode Drive", "fg": [200, 211, 245, 255], "bg": [36, 38, 56, 255], "attributes": 1, "width": 11 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [36, 38, 56, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [37, 39, 57, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [38, 40, 58, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [39, 41, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [40, 42, 60, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [41, 43, 61, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [42, 44, 63, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [43, 45, 63, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [44, 46, 64, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 47, 65, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 48, 66, 255], "attributes": 0, "width": 1 }, - { "text": " + ", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Audit the current tab state.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 83 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": "Working on a tab audit.Tab audit complete.", - "fg": [200, 211, 245, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 42 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 71 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 2.1s", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [200, 211, 245, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [34, 36, 54, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...5aaf-e995-4d1c-bbeb-d28362c9f873/files", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "⦿ UI", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/session-tabs-running.frame.json b/packages/lab/catalog/public/captures/tokyonight/session-tabs-running.frame.json deleted file mode 100644 index 57c9ea94a8d..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/session-tabs-running.frame.json +++ /dev/null @@ -1,472 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [37, 39, 58, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [130, 170, 255, 255], "bg": [37, 39, 58, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [37, 39, 58, 255], "attributes": 0, "width": 1 }, - { "text": "New session", "fg": [200, 211, 245, 255], "bg": [37, 39, 58, 255], "attributes": 1, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [37, 39, 58, 255], - "attributes": 0, - "width": 18 - }, - { "text": " + ", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Audit the current tab state.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 83 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": "Working on a tab audit.", - "fg": [200, 211, 245, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 23 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 90 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [200, 211, 245, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [34, 36, 54, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { "text": "■", "fg": [202, 161, 234, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "⬝⬝⬝⬝⬝⬝", "fg": [66, 57, 90, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "esc ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 4 }, - { "text": "interrupt", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 58 - }, - { "text": "shift+tab ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/shell-execute-failed.frame.json b/packages/lab/catalog/public/captures/tokyonight/shell-execute-failed.frame.json deleted file mode 100644 index 817f411261b..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/shell-execute-failed.frame.json +++ /dev/null @@ -1,557 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [46, 48, 67, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [130, 170, 255, 255], "bg": [45, 47, 66, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 47, 66, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Dr", "fg": [200, 211, 245, 255], "bg": [45, 47, 66, 255], "attributes": 1, "width": 11 }, - { "text": "i", "fg": [200, 211, 245, 255], "bg": [46, 48, 67, 255], "attributes": 1, "width": 1 }, - { "text": "v", "fg": [200, 211, 245, 255], "bg": [47, 49, 68, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [200, 211, 245, 255], "bg": [47, 49, 69, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [47, 50, 70, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [48, 51, 71, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [49, 53, 72, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [50, 54, 73, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 55, 74, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 55, 74, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [53, 55, 75, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [54, 56, 76, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [54, 57, 77, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [53, 55, 75, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [48, 51, 71, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [46, 48, 67, 255], "attributes": 0, "width": 1 }, - { "text": " + ", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "+", "fg": [163, 101, 80, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "Thought · 1.7s", "fg": [163, 101, 80, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 97 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "$", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": "printf catalog-shell-success", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 81 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Tool result declared output without an output schema", - "fg": [255, 117, 127, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 52 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 59 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": "The successful shell command completed.", - "fg": [200, 211, 245, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 39 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 74 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 3.3s", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Now run one failing foreground shell command.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 45 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 66 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "⠇", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": "catalog-shell-fail", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 91 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": "The shell lifecycle is complete.", - "fg": [200, 211, 245, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 32 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 81 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 1.6s", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [200, 211, 245, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [34, 36, 54, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...2983-4a56-4ccd-b10f-a3917c28b89f/files", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "⦿ UI", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/shell-execute-succeeded.frame.json b/packages/lab/catalog/public/captures/tokyonight/shell-execute-succeeded.frame.json deleted file mode 100644 index 7401b47bc00..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/shell-execute-succeeded.frame.json +++ /dev/null @@ -1,520 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [75, 67, 80, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [226, 162, 154, 255], "bg": [75, 67, 80, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [75, 66, 79, 255], "attributes": 0, "width": 1 }, - { "text": "O", "fg": [200, 211, 245, 255], "bg": [71, 63, 77, 255], "attributes": 1, "width": 1 }, - { "text": "p", "fg": [200, 211, 245, 255], "bg": [68, 59, 72, 255], "attributes": 1, "width": 1 }, - { "text": "enCode Drive", "fg": [200, 211, 245, 255], "bg": [67, 58, 70, 255], "attributes": 1, "width": 12 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [67, 58, 70, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [68, 58, 71, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [68, 59, 72, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [68, 60, 73, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [69, 61, 74, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [70, 62, 76, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [71, 63, 77, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [72, 64, 77, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [73, 65, 77, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [74, 65, 78, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [74, 66, 79, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [75, 66, 79, 255], "attributes": 0, "width": 1 }, - { "text": " + ", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Run one successful foreground shell command.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 44 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 67 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "+", "fg": [163, 101, 80, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "Thought · 1.7s", "fg": [163, 101, 80, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 97 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "$", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": "printf catalog-shell-success", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 81 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Tool result declared output without an output schema", - "fg": [255, 117, 127, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 52 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 59 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": "The successful shell command completed.", - "fg": [200, 211, 245, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 39 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 74 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 3.3s", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [200, 211, 245, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [34, 36, 54, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...2983-4a56-4ccd-b10f-a3917c28b89f/files", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "⦿ UI", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/shell-input-streaming.frame.json b/packages/lab/catalog/public/captures/tokyonight/shell-input-streaming.frame.json deleted file mode 100644 index a02d2eddd90..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/shell-input-streaming.frame.json +++ /dev/null @@ -1,488 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [44, 47, 66, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [140, 176, 254, 255], "bg": [45, 48, 66, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 48, 67, 255], "attributes": 0, "width": 1 }, - { "text": "Ope", "fg": [200, 211, 245, 255], "bg": [45, 48, 67, 255], "attributes": 1, "width": 3 }, - { "text": "n", "fg": [200, 211, 245, 255], "bg": [42, 45, 63, 255], "attributes": 1, "width": 1 }, - { "text": "C", "fg": [200, 211, 245, 255], "bg": [37, 40, 58, 255], "attributes": 1, "width": 1 }, - { "text": "ode Drive", "fg": [200, 211, 245, 255], "bg": [35, 37, 55, 255], "attributes": 1, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [35, 37, 55, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Run one successful foreground shell command.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 44 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 67 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "+", "fg": [163, 101, 80, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "Thought", "fg": [163, 101, 80, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 104 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "⠋", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": "Writing command...", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 91 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [200, 211, 245, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [34, 36, 54, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { "text": "⬝⬝⬝⬝⬝⬝⬝⬝", "fg": [79, 68, 108, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "esc ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 4 }, - { "text": "interrupt", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 58 - }, - { "text": "shift+tab ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/shell-output-streaming.frame.json b/packages/lab/catalog/public/captures/tokyonight/shell-output-streaming.frame.json deleted file mode 100644 index 869574dbc80..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/shell-output-streaming.frame.json +++ /dev/null @@ -1,491 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [40, 43, 61, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [132, 171, 255, 255], "bg": [36, 38, 56, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Driv", "fg": [200, 211, 245, 255], "bg": [34, 36, 54, 255], "attributes": 1, "width": 13 }, - { "text": "e", "fg": [200, 211, 245, 255], "bg": [35, 37, 55, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [35, 37, 55, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [36, 38, 56, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [37, 39, 57, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [38, 40, 59, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [39, 41, 60, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [40, 42, 61, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [41, 44, 62, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [42, 45, 63, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [43, 45, 64, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [44, 46, 65, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [44, 47, 66, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [44, 46, 65, 255], "attributes": 0, "width": 1 }, - { "text": " + ", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Run one successful foreground shell command.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 44 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 67 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "+", "fg": [163, 101, 80, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "Thought · 1.7s", "fg": [163, 101, 80, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 97 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "⠋", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": "printf catalog-shell-success", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 81 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [200, 211, 245, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [34, 36, 54, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { "text": "⬝⬝⬝⬝⬝⬝⬝⬝", "fg": [88, 74, 120, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "esc ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 4 }, - { "text": "interrupt", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 58 - }, - { "text": "shift+tab ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "⦿ UI", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/skill-picker.frame.json b/packages/lab/catalog/public/captures/tokyonight/skill-picker.frame.json deleted file mode 100644 index b4939d5b792..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/skill-picker.frame.json +++ /dev/null @@ -1,619 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [54, 70, 105, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "New", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "session", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 86 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "Skills", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 1, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 71 - }, - { "text": "esc", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "Search", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 78 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [130, 170, 255, 255], "attributes": 0, "width": 3 }, - { - "text": "OpenCode Use this skill for any question about OpenCode itself, including how Op", - "fg": [26, 27, 38, 255], - "bg": [130, 170, 255, 255], - "attributes": 1, - "width": 80 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [130, 170, 255, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "Report ", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 8 }, - { - "text": " Use when the user wants to report an opencode issue or bug. Collect sta", - "fg": [130, 139, 184, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 72 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 2 }, - { "text": "Ask", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "anything...", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 11 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "\"Fix", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "a", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "TODO", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "in", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "the", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "codebase\"", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [79, 63, 105, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 38 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "╹", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [14, 15, 22, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { - "text": "/private/var/folde...-580163831713/files", - "fg": [54, 57, 76, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 40 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "agents", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "commands", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 111 - }, - { "text": "local", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [80, 96, 58, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "⦿", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 13, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/status.frame.json b/packages/lab/catalog/public/captures/tokyonight/status.frame.json deleted file mode 100644 index eca0531871f..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/status.frame.json +++ /dev/null @@ -1,669 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [54, 70, 105, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "New", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "session", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 86 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Status", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 1, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 47 - }, - { "text": "esc", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "No MCP servers", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 44 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 40 - }, - { "text": "█", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 23, 30, 255], "attributes": 0, "width": 2 }, - { "text": "█", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "█", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 23, 30, 255], "attributes": 0, "width": 2 }, - { "text": "█", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "█", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "▀▀▀", "fg": [54, 57, 76, 255], "bg": [21, 23, 30, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "█", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [21, 23, 30, 255], "attributes": 0, "width": 2 }, - { "text": "█", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "█", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [29, 30, 37, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "█", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [29, 30, 37, 255], "attributes": 0, "width": 2 }, - { "text": "█", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "█", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [29, 30, 37, 255], "attributes": 0, "width": 2 }, - { "text": "█", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "█", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 1, "width": 1 }, - { "text": "▀▀▀", "fg": [82, 87, 101, 255], "bg": [29, 30, 37, 255], "attributes": 1, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 39 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 40 - }, - { "text": "▀▀▀▀", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "█▀▀▀", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "▀▀▀▀", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "▀", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "▀▀", "fg": [21, 23, 30, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "▀", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "▀▀▀▀", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 1, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "▀▀▀▀", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 1, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "▀▀▀▀", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 1, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "▀▀▀▀", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 1, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 39 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 2 }, - { "text": "Ask", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "anything...", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 11 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "\"Fix", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "a", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "TODO", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "in", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "the", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "codebase\"", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [79, 63, 105, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 38 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "╹", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [14, 15, 22, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 74 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { - "text": "/private/var/folde...-580163831713/files", - "fg": [54, 57, 76, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 40 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "agents", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "commands", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 111 - }, - { "text": "local", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [80, 96, 58, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "○", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 13, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/subagent-completed.frame.json b/packages/lab/catalog/public/captures/tokyonight/subagent-completed.frame.json deleted file mode 100644 index bdd92a8f1ad..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/subagent-completed.frame.json +++ /dev/null @@ -1,497 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [54, 56, 76, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [136, 173, 254, 255], "bg": [50, 53, 72, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [46, 49, 68, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [200, 211, 245, 255], "bg": [45, 47, 66, 255], "attributes": 1, "width": 14 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 47, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 48, 67, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [46, 49, 68, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [46, 50, 69, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [47, 51, 70, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [48, 52, 71, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [49, 53, 72, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [50, 53, 72, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [51, 54, 74, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [52, 55, 75, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [53, 56, 75, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [54, 56, 76, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [54, 57, 76, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [54, 57, 77, 255], "attributes": 0, "width": 2 }, - { "text": " + ", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Use a subagent to inspect src/ledger.ts and calculate the total.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 64 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 47 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "+", "fg": [163, 101, 80, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "Thought · 82ms", "fg": [163, 101, 80, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 97 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "✓", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "Researcher Subagent — Inspect ledger lifecycle", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 46 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 65 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": "Subagent completed the ledger lifecycle.", - "fg": [200, 211, 245, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 40 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 73 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 1.8s", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [200, 211, 245, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [34, 36, 54, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...c9ea-4f57-405e-99e8-3bba18b82b9a/files", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "⦿ UI", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/subagent-running.frame.json b/packages/lab/catalog/public/captures/tokyonight/subagent-running.frame.json deleted file mode 100644 index 0765c23d0e4..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/subagent-running.frame.json +++ /dev/null @@ -1,481 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 47, 66, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [130, 170, 255, 255], "bg": [45, 47, 66, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 47, 66, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [200, 211, 245, 255], "bg": [45, 47, 66, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 47, 66, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Use a subagent to inspect src/ledger.ts and calculate the total.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 64 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 47 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "+", "fg": [163, 101, 80, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "Thought · 82ms", "fg": [163, 101, 80, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 97 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "⠋", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "Researcher Subagent — Inspect ledger lifecycle", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 46 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 65 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [200, 211, 245, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [34, 36, 54, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { "text": "■", "fg": [72, 62, 98, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [96, 80, 130, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [134, 109, 179, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [202, 161, 234, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "⬝⬝⬝", "fg": [96, 80, 129, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "esc ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 4 }, - { "text": "interrupt", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 58 - }, - { "text": "shift+tab ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/subagent-session.frame.json b/packages/lab/catalog/public/captures/tokyonight/subagent-session.frame.json deleted file mode 100644 index 6d6272ea355..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/subagent-session.frame.json +++ /dev/null @@ -1,506 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [44, 47, 65, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [132, 171, 255, 255], "bg": [44, 47, 65, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [44, 47, 65, 255], "attributes": 0, "width": 1 }, - { "text": "Ope", "fg": [200, 211, 245, 255], "bg": [44, 47, 66, 255], "attributes": 1, "width": 3 }, - { "text": "n", "fg": [200, 211, 245, 255], "bg": [44, 47, 65, 255], "attributes": 1, "width": 1 }, - { "text": "C", "fg": [200, 211, 245, 255], "bg": [43, 46, 64, 255], "attributes": 1, "width": 1 }, - { "text": "ode Drive", "fg": [200, 211, 245, 255], "bg": [42, 45, 63, 255], "attributes": 1, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [42, 45, 63, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [42, 46, 64, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [43, 46, 64, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [43, 46, 65, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [44, 47, 65, 255], "attributes": 0, "width": 1 }, - { "text": " + ", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [255, 150, 108, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [255, 150, 108, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "You are a subagent spawned by another session.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 46 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 65 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [255, 150, 108, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Read src/ledger.ts and report its exports, values, and calculated total.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 72 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 39 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [255, 150, 108, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": "The child inspected src/ledger.ts and calculated total 42.", - "fg": [200, 211, 245, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 58 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 55 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "Researcher", "fg": [255, 150, 108, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 10 }, - { - "text": " · Simulated Model · 1.5s", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 78 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [115, 122, 162, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [115, 122, 162, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Subagents", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 1, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Shell", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 90 - }, - { "text": "esc", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [115, 122, 162, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [115, 122, 162, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " No active subagents", - "fg": [130, 139, 184, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 20 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 92 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [115, 122, 162, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [115, 122, 162, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [115, 122, 162, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [115, 122, 162, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [115, 122, 162, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [115, 122, 162, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "show inactive", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 1, "width": 13 }, - { "text": " ", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "ctrl+a", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "tabs", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 1, "width": 4 }, - { "text": " ", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "←/→", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 81 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [115, 122, 162, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "⦿ UI", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/theme-picker.frame.json b/packages/lab/catalog/public/captures/tokyonight/theme-picker.frame.json deleted file mode 100644 index 573811af335..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/theme-picker.frame.json +++ /dev/null @@ -1,715 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [54, 70, 105, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "New", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "session", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 18 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 86 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "Themes", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 1, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 43 - }, - { "text": "esc", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "Search", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 50 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "opencode", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 48 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "orng", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 52 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "osaka-jade", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 46 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "palenight", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 47 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "rosepine", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 48 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 2 }, - { "text": "Ask", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "solarized", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 47 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "synthwave84", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 45 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 2 }, - { "text": "Buil", "fg": [79, 63, 105, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [130, 170, 255, 255], "attributes": 0, "width": 1 }, - { "text": "●", "fg": [26, 27, 38, 255], "bg": [130, 170, 255, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [130, 170, 255, 255], "attributes": 0, "width": 1 }, - { "text": "tokyonight", "fg": [26, 27, 38, 255], "bg": [130, 170, 255, 255], "attributes": 1, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [130, 170, 255, 255], - "attributes": 0, - "width": 45 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "╹", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "▀▀▀▀▀▀", "fg": [14, 15, 22, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "vercel", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 50 - }, - { "text": "▀▀▀▀▀▀▀▀", "fg": [14, 15, 22, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 22 - }, - { "text": "/privat", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "vesper", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 50 - }, - { "text": "commands", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 21 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": "zenburn", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 49 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 29 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 111 - }, - { "text": "local", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [80, 96, 58, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "○", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 13, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/thinking-streaming.frame.json b/packages/lab/catalog/public/captures/tokyonight/thinking-streaming.frame.json deleted file mode 100644 index 0b85615a404..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/thinking-streaming.frame.json +++ /dev/null @@ -1,469 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 47, 66, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [130, 170, 255, 255], "bg": [45, 47, 66, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 47, 66, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [200, 211, 245, 255], "bg": [45, 47, 66, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 47, 66, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Run one successful foreground shell command.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 44 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 67 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "⠙", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "Thinking", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 103 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [200, 211, 245, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [34, 36, 54, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { "text": "■", "fg": [134, 109, 179, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [202, 161, 234, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "⬝⬝⬝⬝⬝", "fg": [76, 65, 104, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "esc ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 4 }, - { "text": "interrupt", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 58 - }, - { "text": "shift+tab ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/toast-error.frame.json b/packages/lab/catalog/public/captures/tokyonight/toast-error.frame.json deleted file mode 100644 index 87063a53a06..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/toast-error.frame.json +++ /dev/null @@ -1,593 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [130, 170, 255, 255], "bg": [34, 36, 54, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { - "text": "OpenCode DriveCatalog cap", - "fg": [200, 211, 245, 255], - "bg": [34, 36, 54, 255], - "attributes": 1, - "width": 25 - }, - { "text": "t", "fg": [167, 176, 207, 255], "bg": [34, 36, 54, 255], "attributes": 1, "width": 1 }, - { "text": "u", "fg": [127, 134, 161, 255], "bg": [34, 36, 54, 255], "attributes": 1, "width": 1 }, - { "text": "r", "fg": [87, 92, 115, 255], "bg": [34, 36, 54, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [47, 50, 69, 255], "bg": [34, 36, 54, 255], "attributes": 1, "width": 1 }, - { "text": " + ", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [29, 31, 45, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [29, 31, 45, 255], "attributes": 0, "width": 2 }, - { "text": "←", "fg": [101, 108, 143, 255], "bg": [29, 31, 45, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [29, 31, 45, 255], "attributes": 0, "width": 1 }, - { "text": "Patched", "fg": [101, 108, 143, 255], "bg": [29, 31, 45, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [29, 31, 45, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-62", - "fg": [101, 108, 143, 255], - "bg": [29, 31, 45, 255], - "attributes": 0, - "width": 49 - }, - { "text": "┃", "fg": [255, 117, 127, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 50 - }, - { "text": "┃", "fg": [255, 117, 127, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 61 - }, - { "text": "┃", "fg": [255, 117, 127, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { - "text": "Sharing is not implemented for V2 sessions yet", - "fg": [200, 211, 245, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 46 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [255, 117, 127, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 144, 154, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": " -", "fg": [226, 106, 117, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [200, 211, 245, 255], "bg": [55, 34, 44, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [55, 34, 44, 255], - "attributes": 0, - "width": 47 - }, - { "text": "┃", "fg": [255, 117, 127, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 50 - }, - { "text": "┃", "fg": [255, 117, 127, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 144, 154, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": " +", "fg": [184, 219, 135, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "after", "fg": [200, 211, 245, 255], "bg": [32, 48, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 100 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": "The fixture was updated.", - "fg": [200, 211, 245, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 24 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 89 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 1.7s", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Ask me about the fixture direction.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 35 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "# Questions", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 100 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Which direction should the fixture take?", - "fg": [130, 139, 184, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 40 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 71 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Keep it minimal (Recommended)", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 82 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": "Keeping the fixture minimal.", - "fg": [200, 211, 245, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 85 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 160ms", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [200, 211, 245, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [34, 36, 54, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...f34a-2a28-4fe7-8255-580163831713/files", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "⦿ UI", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/toast-info.frame.json b/packages/lab/catalog/public/captures/tokyonight/toast-info.frame.json deleted file mode 100644 index 42f40b97f30..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/toast-info.frame.json +++ /dev/null @@ -1,686 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [54, 70, 105, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "DriveCatalog", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 12 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "cap", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 3 }, - { "text": "t", "fg": [69, 72, 85, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 1 }, - { "text": "u", "fg": [52, 55, 66, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 1 }, - { "text": "r", "fg": [36, 38, 47, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [19, 21, 28, 255], "bg": [14, 15, 22, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 84 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [11, 11, 16, 255], "bg": [12, 13, 19, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 19, 255], "attributes": 0, "width": 2 }, - { "text": "←", "fg": [42, 44, 59, 255], "bg": [12, 13, 19, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 19, 255], "attributes": 0, "width": 1 }, - { "text": "Patched", "fg": [42, 44, 59, 255], "bg": [12, 13, 19, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 19, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-62cbf34a-2a28-4fe7", - "fg": [42, 44, 59, 255], - "bg": [12, 13, 19, 255], - "attributes": 0, - "width": 65 - }, - { "text": "┃", "fg": [54, 70, 105, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 34 - }, - { "text": "┃", "fg": [54, 70, 105, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [11, 11, 16, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 13, 20, 255], - "attributes": 0, - "width": 77 - }, - { "text": "┃", "fg": [54, 70, 105, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 2 }, - { "text": "Debug", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "info", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "copied", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "to", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "clipboard", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [54, 70, 105, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [11, 11, 16, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [59, 59, 63, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": "-", "fg": [93, 44, 48, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [19, 13, 16, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [82, 87, 101, 255], "bg": [23, 14, 18, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [23, 14, 18, 255], - "attributes": 0, - "width": 63 - }, - { "text": "┃", "fg": [54, 70, 105, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 34 - }, - { "text": "┃", "fg": [54, 70, 105, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [11, 11, 16, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [59, 59, 63, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": "+", "fg": [76, 90, 56, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 18, 21, 255], "attributes": 0, "width": 1 }, - { "text": "after", "fg": [82, 87, 101, 255], "bg": [13, 20, 24, 255], "attributes": 0, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [13, 20, 24, 255], - "attributes": 0, - "width": 100 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [11, 11, 16, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 13, 20, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 5 }, - { "text": "The", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "fixture", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "was", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "updated.", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 89 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "Si", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Debug", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 1, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - }, - { "text": "esc", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 12 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Ask", "fg": [82, 87, 101, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "me", "fg": [82, 87, 101, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "abo", "fg": [82, 87, 101, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Version ", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "local (local)", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 13 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 62 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 12 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Date ", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": "2026-08-12T19:26:41.269Z", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 24 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 51 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "OS ", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": "macOS 25.5.0 (arm64)", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 20 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 55 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 15 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [11, 11, 16, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 12 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Terminal ", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "ghostty 1.3.1", "fg": [200, 211, 245, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 13 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 62 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [11, 11, 16, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "#", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "Question", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Session ID", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": "ses_0088f22f2ffeo7Bdik3tyBSRP6", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 30 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 45 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [11, 11, 16, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 12 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Model ", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 10 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": "simulation/gpt-sim-model", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 24 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 51 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [11, 11, 16, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Which", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "dire", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 4 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [11, 11, 16, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Keep", "fg": [82, 87, 101, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "it", "fg": [82, 87, 101, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "mi", "fg": [82, 87, 101, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Share this when reporting an issue.", - "fg": [130, 139, 184, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 35 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 35 - }, - { "text": "✓ copied", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 1, "width": 8 }, - { "text": " ", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "enter", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [11, 11, 16, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 12 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 88 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 13 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 5 }, - { "text": "Keeping", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "the", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "fixture", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "minimal.", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 8 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 85 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "160ms", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [79, 63, 105, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "Simulated", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "Model", "fg": [82, 87, 101, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [54, 57, 76, 255], "bg": [14, 15, 22, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [14, 15, 22, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [79, 63, 105, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [14, 15, 22, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...f34a-2a28-4fe7-8255-580163831713/files", - "fg": [54, 57, 76, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 9 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "agents", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p", "fg": [82, 87, 101, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 1 }, - { "text": "commands", "fg": [54, 57, 76, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [11, 11, 16, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [11, 11, 16, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [80, 96, 58, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "Server", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "⦿", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 1 }, - { "text": "UI", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [54, 57, 76, 255], "bg": [12, 13, 20, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [12, 13, 20, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/toast-success.frame.json b/packages/lab/catalog/public/captures/tokyonight/toast-success.frame.json deleted file mode 100644 index 667c814ab91..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/toast-success.frame.json +++ /dev/null @@ -1,593 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [130, 170, 255, 255], "bg": [34, 36, 54, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { - "text": "OpenCode DriveCatalog cap", - "fg": [200, 211, 245, 255], - "bg": [34, 36, 54, 255], - "attributes": 1, - "width": 25 - }, - { "text": "t", "fg": [167, 176, 207, 255], "bg": [34, 36, 54, 255], "attributes": 1, "width": 1 }, - { "text": "u", "fg": [127, 134, 161, 255], "bg": [34, 36, 54, 255], "attributes": 1, "width": 1 }, - { "text": "r", "fg": [87, 92, 115, 255], "bg": [34, 36, 54, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [47, 50, 69, 255], "bg": [34, 36, 54, 255], "attributes": 1, "width": 1 }, - { "text": " + ", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [29, 31, 45, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [29, 31, 45, 255], "attributes": 0, "width": 2 }, - { "text": "←", "fg": [101, 108, 143, 255], "bg": [29, 31, 45, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [29, 31, 45, 255], "attributes": 0, "width": 1 }, - { "text": "Patched", "fg": [101, 108, 143, 255], "bg": [29, 31, 45, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [29, 31, 45, 255], "attributes": 0, "width": 1 }, - { - "text": "…/5fz89drs5p9_r0fk7rwqqn…/T/opencode-drive/run-62cbf34a-", - "fg": [101, 108, 143, 255], - "bg": [29, 31, 45, 255], - "attributes": 0, - "width": 56 - }, - { "text": "┃", "fg": [195, 232, 141, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 43 - }, - { "text": "┃", "fg": [195, 232, 141, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 68 - }, - { "text": "┃", "fg": [195, 232, 141, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { - "text": "Session transcript copied to clipboard!", - "fg": [200, 211, 245, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 39 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [195, 232, 141, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 144, 154, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": " -", "fg": [226, 106, 117, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 31, 38, 255], "attributes": 0, "width": 1 }, - { "text": "before", "fg": [200, 211, 245, 255], "bg": [55, 34, 44, 255], "attributes": 0, "width": 6 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [55, 34, 44, 255], - "attributes": 0, - "width": 54 - }, - { "text": "┃", "fg": [195, 232, 141, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 43 - }, - { "text": "┃", "fg": [195, 232, 141, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 3 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [143, 144, 154, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": " +", "fg": [184, 219, 135, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [27, 43, 52, 255], "attributes": 0, "width": 1 }, - { "text": "after", "fg": [200, 211, 245, 255], "bg": [32, 48, 59, 255], "attributes": 0, "width": 5 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [32, 48, 59, 255], - "attributes": 0, - "width": 100 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": "The fixture was updated.", - "fg": [200, 211, 245, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 24 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 89 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 1.7s", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Ask me about the fixture direction.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 35 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "# Questions", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 100 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Which direction should the fixture take?", - "fg": [130, 139, 184, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 40 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 71 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Keep it minimal (Recommended)", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 29 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 82 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [26, 27, 38, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": "Keeping the fixture minimal.", - "fg": [200, 211, 245, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 85 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 160ms", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 82 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [200, 211, 245, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [34, 36, 54, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...f34a-2a28-4fe7-8255-580163831713/files", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "⦿ UI", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/webfetch-streaming.frame.json b/packages/lab/catalog/public/captures/tokyonight/webfetch-streaming.frame.json deleted file mode 100644 index a416dd96657..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/webfetch-streaming.frame.json +++ /dev/null @@ -1,474 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [42, 45, 63, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [130, 170, 255, 255], "bg": [42, 45, 63, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [42, 45, 63, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [200, 211, 245, 255], "bg": [42, 45, 63, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [42, 45, 63, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Fetch the Example Domain.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 86 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "⠋", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "Fetching from the web...", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 24 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 87 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [200, 211, 245, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [34, 36, 54, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { "text": "■", "fg": [202, 161, 234, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "⬝⬝⬝⬝⬝⬝", "fg": [66, 57, 90, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "esc ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 4 }, - { "text": "interrupt", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 58 - }, - { "text": "shift+tab ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/webfetch-success.frame.json b/packages/lab/catalog/public/captures/tokyonight/webfetch-success.frame.json deleted file mode 100644 index a3d16f25a10..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/webfetch-success.frame.json +++ /dev/null @@ -1,486 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 47, 66, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [130, 170, 255, 255], "bg": [45, 47, 66, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [45, 47, 66, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [200, 211, 245, 255], "bg": [45, 47, 66, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [45, 47, 66, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Fetch the Example Domain.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 86 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "%", "fg": [255, 117, 127, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "WebFetch https://example.com", - "fg": [255, 117, 127, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": "The web fetch is complete.", - "fg": [200, 211, 245, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 87 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 7.2s", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [200, 211, 245, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [34, 36, 54, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { - "text": "/private/var/folders/dd/5fz89drs5p9_r0...4b48-a447-484a-aeaf-1776abbaaa0e/files", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 79 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "shift+tab ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/websearch-failure.frame.json b/packages/lab/catalog/public/captures/tokyonight/websearch-failure.frame.json deleted file mode 100644 index d5bd9061395..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/websearch-failure.frame.json +++ /dev/null @@ -1,527 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [35, 37, 55, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [131, 171, 255, 255], "bg": [35, 37, 56, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [36, 38, 56, 255], "attributes": 0, "width": 1 }, - { "text": "O", "fg": [200, 211, 245, 255], "bg": [37, 39, 57, 255], "attributes": 1, "width": 1 }, - { "text": "p", "fg": [200, 211, 245, 255], "bg": [38, 40, 59, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [200, 211, 245, 255], "bg": [39, 41, 60, 255], "attributes": 1, "width": 1 }, - { "text": "n", "fg": [200, 211, 245, 255], "bg": [40, 43, 61, 255], "attributes": 1, "width": 1 }, - { "text": "C", "fg": [200, 211, 245, 255], "bg": [41, 44, 62, 255], "attributes": 1, "width": 1 }, - { "text": "o", "fg": [200, 211, 245, 255], "bg": [42, 45, 63, 255], "attributes": 1, "width": 1 }, - { "text": "d", "fg": [200, 211, 245, 255], "bg": [43, 45, 64, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [200, 211, 245, 255], "bg": [44, 46, 65, 255], "attributes": 1, "width": 1 }, - { "text": " Dri", "fg": [200, 211, 245, 255], "bg": [44, 47, 66, 255], "attributes": 1, "width": 4 }, - { "text": "v", "fg": [200, 211, 245, 255], "bg": [44, 46, 65, 255], "attributes": 1, "width": 1 }, - { "text": "e", "fg": [200, 211, 245, 255], "bg": [40, 42, 61, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [36, 38, 56, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 14 }, - { "text": " + ", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Fetch the Example Domain.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 86 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "%", "fg": [255, 117, 127, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "WebFetch https://example.com", - "fg": [255, 117, 127, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": "The web fetch is complete.", - "fg": [200, 211, 245, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 87 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 7.2s", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Search the web for the OpenCode terminal interface.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 51 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "⠹", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "Searching web...", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 16 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 95 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [200, 211, 245, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [34, 36, 54, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { "text": "■", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [202, 161, 234, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [134, 109, 179, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [96, 80, 130, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [72, 62, 98, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "■", "fg": [56, 50, 77, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "⬝⬝", "fg": [126, 103, 168, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "esc ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 4 }, - { "text": "interrupt", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 58 - }, - { "text": "shift+tab ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "⦿ UI", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/captures/tokyonight/websearch-running.frame.json b/packages/lab/catalog/public/captures/tokyonight/websearch-running.frame.json deleted file mode 100644 index 75ffde00649..00000000000 --- a/packages/lab/catalog/public/captures/tokyonight/websearch-running.frame.json +++ /dev/null @@ -1,517 +0,0 @@ -{ - "format": "opencode-terminal-frame-v1", - "cols": 118, - "rows": 34, - "cursor": [0, 0], - "lines": [ - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [39, 41, 60, 255], "attributes": 0, "width": 1 }, - { "text": "1", "fg": [194, 160, 179, 255], "bg": [39, 41, 60, 255], "attributes": 1, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [39, 41, 60, 255], "attributes": 0, "width": 1 }, - { "text": "OpenCode Drive", "fg": [200, 211, 245, 255], "bg": [39, 41, 60, 255], "attributes": 1, "width": 14 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [39, 41, 60, 255], - "attributes": 0, - "width": 15 - }, - { "text": " + ", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Fetch the Example Domain.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 86 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "%", "fg": [255, 117, 127, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "WebFetch https://example.com", - "fg": [255, 117, 127, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 28 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": "The web fetch is complete.", - "fg": [200, 211, 245, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 26 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 87 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { - "text": " · Simulated Model · 7.2s", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 25 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 83 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { - "text": "Search the web for the OpenCode terminal interface.", - "fg": [200, 211, 245, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 51 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 60 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 5 }, - { "text": "⠋", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "Searching web...", - "fg": [130, 139, 184, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 16 - }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 95 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "┃", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 2 }, - { "text": "Build", "fg": [192, 153, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "·", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { - "text": "Simulated Model", - "fg": [200, 211, 245, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 15 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 1 }, - { "text": "Simulation", "fg": [130, 139, 184, 255], "bg": [34, 36, 54, 255], "attributes": 0, "width": 10 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [34, 36, 54, 255], - "attributes": 0, - "width": 77 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "╹", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { - "text": "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀", - "fg": [34, 36, 54, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 113 - }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 3 }, - { "text": "■", "fg": [192, 153, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "⬝⬝⬝⬝⬝⬝⬝", "fg": [56, 50, 77, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 1 }, - { "text": "esc ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 4 }, - { "text": "interrupt", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 9 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 58 - }, - { "text": "shift+tab ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 10 }, - { "text": "agents", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 6 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 }, - { "text": "ctrl+p ", "fg": [200, 211, 245, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 7 }, - { "text": "commands", "fg": [130, 139, 184, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 8 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [26, 27, 38, 255], "attributes": 0, "width": 2 } - ] - }, - { - "spans": [ - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [26, 27, 38, 255], - "attributes": 0, - "width": 118 - } - ] - }, - { - "spans": [ - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": "✓", "fg": [195, 232, 141, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 1 }, - { "text": " Server", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 7 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "○ UI", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 4 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Theme", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Tools", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 5 }, - { "text": " ", "fg": [255, 255, 255, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 2 }, - { "text": "Experiments", "fg": [130, 139, 184, 255], "bg": [30, 32, 48, 255], "attributes": 0, "width": 11 }, - { - "text": " ", - "fg": [255, 255, 255, 255], - "bg": [30, 32, 48, 255], - "attributes": 0, - "width": 76 - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/catalog.json b/packages/lab/catalog/public/catalog.json deleted file mode 100644 index fa04d9fcc4d..00000000000 --- a/packages/lab/catalog/public/catalog.json +++ /dev/null @@ -1,4075 +0,0 @@ -{ - "format": "opencode-terminal-catalog-v3", - "generatedBy": "scripts/capture-opencode-drive.ts", - "variants": [ - { - "id": "opencode", - "label": "Opencode", - "source": "opencode", - "revision": "2a0ccdbfd4589ba2181624f25c55ed4ac0546b2d", - "ref": "2a0ccdbfd4589ba2181624f25c55ed4ac0546b2d", - "committedAt": "2026-08-12T12:45:43-04:00", - "theme": "opencode" - }, - { - "id": "tokyonight", - "label": "Tokyo Night", - "source": "opencode", - "revision": "2a0ccdbfd4589ba2181624f25c55ed4ac0546b2d", - "ref": "2a0ccdbfd4589ba2181624f25c55ed4ac0546b2d", - "committedAt": "2026-08-12T12:45:43-04:00", - "theme": "tokyonight" - }, - { - "id": "everforest", - "label": "Everforest", - "source": "opencode", - "revision": "2a0ccdbfd4589ba2181624f25c55ed4ac0546b2d", - "ref": "2a0ccdbfd4589ba2181624f25c55ed4ac0546b2d", - "committedAt": "2026-08-12T12:45:43-04:00", - "theme": "everforest" - } - ], - "screenTaxonomy": [ - { - "id": "getting-started", - "label": "Getting started", - "items": [ - { - "id": "start-screen", - "label": "Start screen" - }, - { - "id": "new-session", - "label": "New session" - } - ] - }, - { - "id": "conversation", - "label": "Conversation", - "items": [ - { - "id": "composer", - "label": "Composer" - }, - { - "id": "question-response", - "label": "Question response" - }, - { - "id": "tool-execution", - "label": "Tool execution" - }, - { - "id": "diff-review", - "label": "Diff review" - }, - { - "id": "subagent-activity", - "label": "Subagent activity" - }, - { - "id": "shell-activity", - "label": "Shell activity" - } - ] - }, - { - "id": "session-management", - "label": "Session management", - "items": [ - { - "id": "session-list", - "label": "Session list" - }, - { - "id": "rename-session", - "label": "Rename session" - }, - { - "id": "fork-session", - "label": "Fork session" - }, - { - "id": "export-session", - "label": "Export session" - } - ] - }, - { - "id": "notifications", - "label": "Notifications", - "items": [ - { - "id": "toast-info", - "label": "Info toast" - }, - { - "id": "toast-success", - "label": "Success toast" - }, - { - "id": "toast-error", - "label": "Error toast" - } - ] - }, - { - "id": "models-and-agents", - "label": "Models & agents", - "items": [ - { - "id": "model-selection", - "label": "Model selection" - }, - { - "id": "agent-selection", - "label": "Agent selection" - }, - { - "id": "skill-selection", - "label": "Skill selection" - } - ] - }, - { - "id": "configuration", - "label": "Configuration", - "items": [ - { - "id": "integration-setup", - "label": "Integration setup" - }, - { - "id": "mcp-management", - "label": "MCP management" - }, - { - "id": "theme-selection", - "label": "Theme selection" - }, - { - "id": "device-pairing", - "label": "Device pairing" - } - ] - }, - { - "id": "system", - "label": "System", - "items": [ - { - "id": "command-navigation", - "label": "Command navigation" - }, - { - "id": "system-status", - "label": "System status" - }, - { - "id": "help-reference", - "label": "Help & reference" - }, - { - "id": "debugging", - "label": "Debugging" - }, - { - "id": "error-recovery", - "label": "Error recovery" - } - ] - } - ], - "uiElementTaxonomy": [ - { - "id": "navigation", - "label": "Navigation", - "items": [ - { - "id": "command-palette", - "label": "Command palette" - }, - { - "id": "tabs", - "label": "Tabs" - }, - { - "id": "keyboard-hints", - "label": "Keyboard hints" - }, - { - "id": "shortcut-list", - "label": "Shortcut list" - } - ] - }, - { - "id": "selection", - "label": "Selection", - "items": [ - { - "id": "picker", - "label": "Picker" - }, - { - "id": "search-field", - "label": "Search field" - }, - { - "id": "single-select", - "label": "Single select" - }, - { - "id": "list", - "label": "List" - } - ] - }, - { - "id": "input", - "label": "Input", - "items": [ - { - "id": "text-input", - "label": "Text input" - }, - { - "id": "form", - "label": "Form" - }, - { - "id": "composer", - "label": "Composer" - }, - { - "id": "question-prompt", - "label": "Question prompt" - } - ] - }, - { - "id": "actions", - "label": "Actions", - "items": [ - { - "id": "button-group", - "label": "Button group" - }, - { - "id": "approval-actions", - "label": "Approval actions" - }, - { - "id": "destructive-action", - "label": "Destructive action" - } - ] - }, - { - "id": "feedback", - "label": "Feedback", - "items": [ - { - "id": "empty-state", - "label": "Empty state" - }, - { - "id": "status-indicator", - "label": "Status indicator" - }, - { - "id": "toast", - "label": "Toast" - }, - { - "id": "confirmation", - "label": "Confirmation" - }, - { - "id": "error-report", - "label": "Error report" - } - ] - }, - { - "id": "content", - "label": "Content", - "items": [ - { - "id": "terminal-output", - "label": "Terminal output" - }, - { - "id": "transcript", - "label": "Transcript" - }, - { - "id": "tool-card", - "label": "Tool card" - }, - { - "id": "qr-code", - "label": "QR code" - }, - { - "id": "debug-information", - "label": "Debug information" - } - ] - }, - { - "id": "containers", - "label": "Containers", - "items": [ - { - "id": "dialog", - "label": "Dialog" - }, - { - "id": "inline-prompt", - "label": "Inline prompt" - }, - { - "id": "panel", - "label": "Panel" - }, - { - "id": "full-screen-view", - "label": "Full-screen view" - } - ] - } - ], - "surfaces": ["full-screen", "inline", "modal", "panel", "toast"], - "patterns": [ - "approval", - "error-report", - "form", - "info", - "landing", - "list", - "navigation", - "notification", - "pairing", - "palette", - "picker", - "status", - "terminal" - ], - "features": [ - "agent", - "assistant", - "commands", - "debug", - "device", - "diff", - "export", - "help", - "integration", - "mcp", - "model", - "navigation", - "notification", - "patch", - "permission", - "question", - "read", - "response", - "search", - "session", - "shell", - "shortcuts", - "skill", - "subagent", - "system", - "tabs", - "theme", - "thinking", - "tool", - "web" - ], - "states": [ - "confirmation", - "default", - "empty", - "error", - "expanded", - "idle", - "pending", - "populated", - "running", - "selected", - "streaming", - "success" - ], - "screens": [ - { - "id": "home", - "title": "Home", - "category": "system", - "summary": "", - "tags": [ - "start-screen", - "new-session", - "composer", - "composer", - "keyboard-hints", - "full-screen-view", - "empty-state", - "full-screen", - "landing", - "system", - "session", - "empty" - ], - "screenLabels": ["start-screen", "new-session", "composer"], - "uiElements": ["composer", "keyboard-hints", "full-screen-view", "empty-state"], - "surfaces": ["full-screen"], - "patterns": ["landing"], - "features": ["system", "session"], - "states": ["empty"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/home.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/home.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/home.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "command-palette", - "title": "Command palette", - "category": "navigation", - "summary": "", - "tags": [ - "command-navigation", - "command-palette", - "search-field", - "list", - "keyboard-hints", - "dialog", - "modal", - "palette", - "commands", - "navigation", - "default" - ], - "screenLabels": ["command-navigation"], - "uiElements": ["command-palette", "search-field", "list", "keyboard-hints", "dialog"], - "surfaces": ["modal"], - "patterns": ["palette"], - "features": ["commands", "navigation"], - "states": ["default"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/command-palette.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/command-palette.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/command-palette.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "model-picker", - "title": "Model picker", - "category": "picker", - "summary": "", - "tags": [ - "model-selection", - "picker", - "search-field", - "single-select", - "list", - "dialog", - "keyboard-hints", - "modal", - "picker", - "model", - "default" - ], - "screenLabels": ["model-selection"], - "uiElements": ["picker", "search-field", "single-select", "list", "dialog", "keyboard-hints"], - "surfaces": ["modal"], - "patterns": ["picker"], - "features": ["model"], - "states": ["default"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/model-picker.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/model-picker.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/model-picker.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "agent-picker", - "title": "Agent picker", - "category": "picker", - "summary": "", - "tags": [ - "agent-selection", - "picker", - "search-field", - "single-select", - "list", - "dialog", - "keyboard-hints", - "modal", - "picker", - "agent", - "default" - ], - "screenLabels": ["agent-selection"], - "uiElements": ["picker", "search-field", "single-select", "list", "dialog", "keyboard-hints"], - "surfaces": ["modal"], - "patterns": ["picker"], - "features": ["agent"], - "states": ["default"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/agent-picker.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/agent-picker.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/agent-picker.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "integration-picker", - "title": "Integrations", - "category": "picker", - "summary": "", - "tags": [ - "integration-setup", - "picker", - "single-select", - "list", - "dialog", - "modal", - "picker", - "integration", - "default" - ], - "screenLabels": ["integration-setup"], - "uiElements": ["picker", "single-select", "list", "dialog"], - "surfaces": ["modal"], - "patterns": ["picker"], - "features": ["integration"], - "states": ["default"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/integration-picker.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/integration-picker.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/integration-picker.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "theme-picker", - "title": "Theme picker", - "category": "picker", - "summary": "", - "tags": ["theme-selection", "picker", "single-select", "list", "dialog", "modal", "picker", "theme", "default"], - "screenLabels": ["theme-selection"], - "uiElements": ["picker", "single-select", "list", "dialog"], - "surfaces": ["modal"], - "patterns": ["picker"], - "features": ["theme"], - "states": ["default"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/theme-picker.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/theme-picker.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/theme-picker.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "mcp-list", - "title": "MCPs", - "category": "status", - "summary": "", - "tags": ["mcp-management", "list", "dialog", "empty-state", "modal", "list", "mcp", "empty"], - "screenLabels": ["mcp-management"], - "uiElements": ["list", "dialog", "empty-state"], - "surfaces": ["modal"], - "patterns": ["list"], - "features": ["mcp"], - "states": ["empty"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/mcp-list.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/mcp-list.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/mcp-list.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "status", - "title": "Status", - "category": "status", - "summary": "", - "tags": [ - "system-status", - "mcp-management", - "status-indicator", - "list", - "dialog", - "empty-state", - "modal", - "status", - "system", - "mcp", - "empty" - ], - "screenLabels": ["system-status", "mcp-management"], - "uiElements": ["status-indicator", "list", "dialog", "empty-state"], - "surfaces": ["modal"], - "patterns": ["status"], - "features": ["system", "mcp"], - "states": ["empty"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/status.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/status.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/status.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "debug", - "title": "Debug", - "category": "information", - "summary": "", - "tags": [ - "debugging", - "system-status", - "debug-information", - "dialog", - "modal", - "info", - "debug", - "system", - "default" - ], - "screenLabels": ["debugging", "system-status"], - "uiElements": ["debug-information", "dialog"], - "surfaces": ["modal"], - "patterns": ["info"], - "features": ["debug", "system"], - "states": ["default"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/debug.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/debug.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/debug.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "help", - "title": "Help", - "category": "information", - "summary": "", - "tags": [ - "help-reference", - "command-navigation", - "shortcut-list", - "keyboard-hints", - "dialog", - "list", - "modal", - "info", - "help", - "shortcuts", - "default" - ], - "screenLabels": ["help-reference", "command-navigation"], - "uiElements": ["shortcut-list", "keyboard-hints", "dialog", "list"], - "surfaces": ["modal"], - "patterns": ["info"], - "features": ["help", "shortcuts"], - "states": ["default"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/help.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/help.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/help.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "pair", - "title": "Pair device", - "category": "information", - "summary": "", - "tags": ["device-pairing", "integration-setup", "qr-code", "dialog", "modal", "pairing", "device", "default"], - "screenLabels": ["device-pairing", "integration-setup"], - "uiElements": ["qr-code", "dialog"], - "surfaces": ["modal"], - "patterns": ["pairing"], - "features": ["device"], - "states": ["default"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/pair.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/pair.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/pair.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "session-picker", - "title": "Session picker", - "category": "session", - "summary": "", - "tags": [ - "session-list", - "picker", - "search-field", - "single-select", - "list", - "dialog", - "keyboard-hints", - "empty-state", - "modal", - "picker", - "session", - "empty" - ], - "screenLabels": ["session-list"], - "uiElements": ["picker", "search-field", "single-select", "list", "dialog", "keyboard-hints", "empty-state"], - "surfaces": ["modal"], - "patterns": ["picker"], - "features": ["session"], - "states": ["empty"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/session-picker.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/session-picker.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/session-picker.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "skill-picker", - "title": "Skill picker", - "category": "session", - "summary": "", - "tags": [ - "skill-selection", - "picker", - "search-field", - "single-select", - "list", - "dialog", - "keyboard-hints", - "modal", - "picker", - "skill", - "default" - ], - "screenLabels": ["skill-selection"], - "uiElements": ["picker", "search-field", "single-select", "list", "dialog", "keyboard-hints"], - "surfaces": ["modal"], - "patterns": ["picker"], - "features": ["skill"], - "states": ["default"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/skill-picker.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/skill-picker.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/skill-picker.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "patch-input-streaming", - "title": "Patch input streaming", - "category": "session", - "summary": "", - "tags": [ - "tool-execution", - "transcript", - "tool-card", - "status-indicator", - "inline", - "status", - "tool", - "patch", - "streaming" - ], - "screenLabels": ["tool-execution"], - "uiElements": ["transcript", "tool-card", "status-indicator"], - "surfaces": ["inline"], - "patterns": ["status"], - "features": ["tool", "patch"], - "states": ["streaming"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/patch-input-streaming.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/patch-input-streaming.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/patch-input-streaming.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "permission-prompt", - "title": "Permission prompt", - "category": "session", - "summary": "", - "tags": [ - "tool-execution", - "inline-prompt", - "approval-actions", - "button-group", - "keyboard-hints", - "confirmation", - "destructive-action", - "inline", - "approval", - "permission", - "tool", - "patch", - "confirmation" - ], - "screenLabels": ["tool-execution"], - "uiElements": [ - "inline-prompt", - "approval-actions", - "button-group", - "keyboard-hints", - "confirmation", - "destructive-action" - ], - "surfaces": ["inline"], - "patterns": ["approval"], - "features": ["permission", "tool", "patch"], - "states": ["confirmation"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/permission-prompt.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/permission-prompt.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/permission-prompt.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "permission-always-selected", - "title": "Permission prompt (always selected)", - "category": "session", - "summary": "", - "tags": [ - "tool-execution", - "inline-prompt", - "approval-actions", - "button-group", - "keyboard-hints", - "confirmation", - "inline", - "approval", - "permission", - "tool", - "patch", - "selected" - ], - "screenLabels": ["tool-execution"], - "uiElements": ["inline-prompt", "approval-actions", "button-group", "keyboard-hints", "confirmation"], - "surfaces": ["inline"], - "patterns": ["approval"], - "features": ["permission", "tool", "patch"], - "states": ["selected"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/permission-always-selected.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/permission-always-selected.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/permission-always-selected.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "permission-always-confirmation", - "title": "Always allow confirmation", - "category": "session", - "summary": "", - "tags": [ - "tool-execution", - "inline-prompt", - "approval-actions", - "button-group", - "keyboard-hints", - "confirmation", - "inline", - "approval", - "permission", - "tool", - "patch", - "confirmation" - ], - "screenLabels": ["tool-execution"], - "uiElements": ["inline-prompt", "approval-actions", "button-group", "keyboard-hints", "confirmation"], - "surfaces": ["inline"], - "patterns": ["approval"], - "features": ["permission", "tool", "patch"], - "states": ["confirmation"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/permission-always-confirmation.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/permission-always-confirmation.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/permission-always-confirmation.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "permission-reject-selected", - "title": "Permission prompt (reject selected)", - "category": "session", - "summary": "", - "tags": [ - "tool-execution", - "inline-prompt", - "approval-actions", - "button-group", - "keyboard-hints", - "destructive-action", - "inline", - "approval", - "permission", - "tool", - "patch", - "selected" - ], - "screenLabels": ["tool-execution"], - "uiElements": ["inline-prompt", "approval-actions", "button-group", "keyboard-hints", "destructive-action"], - "surfaces": ["inline"], - "patterns": ["approval"], - "features": ["permission", "tool", "patch"], - "states": ["selected"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/permission-reject-selected.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/permission-reject-selected.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/permission-reject-selected.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "permission-fullscreen", - "title": "Permission prompt (fullscreen)", - "category": "session", - "summary": "", - "tags": [ - "tool-execution", - "inline-prompt", - "approval-actions", - "button-group", - "keyboard-hints", - "confirmation", - "full-screen-view", - "full-screen", - "approval", - "permission", - "tool", - "patch", - "expanded" - ], - "screenLabels": ["tool-execution"], - "uiElements": [ - "inline-prompt", - "approval-actions", - "button-group", - "keyboard-hints", - "confirmation", - "full-screen-view" - ], - "surfaces": ["full-screen"], - "patterns": ["approval"], - "features": ["permission", "tool", "patch"], - "states": ["expanded"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/permission-fullscreen.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/permission-fullscreen.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/permission-fullscreen.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "patch-success", - "title": "Patch succeeded", - "category": "session", - "summary": "", - "tags": [ - "tool-execution", - "transcript", - "tool-card", - "confirmation", - "inline", - "status", - "tool", - "patch", - "success" - ], - "screenLabels": ["tool-execution"], - "uiElements": ["transcript", "tool-card", "confirmation"], - "surfaces": ["inline"], - "patterns": ["status"], - "features": ["tool", "patch"], - "states": ["success"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/patch-success.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/patch-success.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/patch-success.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "session-rename", - "title": "Rename session", - "category": "session", - "summary": "", - "tags": ["rename-session", "dialog", "form", "text-input", "modal", "form", "session", "default"], - "screenLabels": ["rename-session"], - "uiElements": ["dialog", "form", "text-input"], - "surfaces": ["modal"], - "patterns": ["form"], - "features": ["session"], - "states": ["default"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/session-rename.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/session-rename.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/session-rename.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "session-fork", - "title": "Fork session", - "category": "session", - "summary": "", - "tags": ["fork-session", "dialog", "picker", "single-select", "list", "modal", "picker", "session", "default"], - "screenLabels": ["fork-session"], - "uiElements": ["dialog", "picker", "single-select", "list"], - "surfaces": ["modal"], - "patterns": ["picker"], - "features": ["session"], - "states": ["default"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/session-fork.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/session-fork.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/session-fork.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "session-export", - "title": "Export session", - "category": "session", - "summary": "", - "tags": [ - "export-session", - "dialog", - "form", - "single-select", - "button-group", - "modal", - "form", - "session", - "export", - "default" - ], - "screenLabels": ["export-session"], - "uiElements": ["dialog", "form", "single-select", "button-group"], - "surfaces": ["modal"], - "patterns": ["form"], - "features": ["session", "export"], - "states": ["default"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/session-export.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/session-export.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/session-export.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "question-prompt", - "title": "Question prompt", - "category": "session", - "summary": "", - "tags": [ - "question-response", - "tool-execution", - "inline-prompt", - "question-prompt", - "form", - "single-select", - "button-group", - "confirmation", - "inline", - "form", - "question", - "tool", - "confirmation" - ], - "screenLabels": ["question-response", "tool-execution"], - "uiElements": ["inline-prompt", "question-prompt", "form", "single-select", "button-group", "confirmation"], - "surfaces": ["inline"], - "patterns": ["form"], - "features": ["question", "tool"], - "states": ["confirmation"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/question-prompt.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/question-prompt.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/question-prompt.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "session-picker-populated", - "title": "Session picker (populated)", - "category": "session", - "summary": "", - "tags": [ - "session-list", - "picker", - "search-field", - "single-select", - "list", - "dialog", - "keyboard-hints", - "modal", - "picker", - "session", - "populated" - ], - "screenLabels": ["session-list"], - "uiElements": ["picker", "search-field", "single-select", "list", "dialog", "keyboard-hints"], - "surfaces": ["modal"], - "patterns": ["picker"], - "features": ["session"], - "states": ["populated"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/session-picker-populated.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/session-picker-populated.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/session-picker-populated.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "toast-success", - "title": "Success toast", - "category": "system", - "summary": "", - "tags": [ - "export-session", - "toast-success", - "toast", - "confirmation", - "transcript", - "toast", - "notification", - "session", - "export", - "notification", - "success" - ], - "screenLabels": ["export-session", "toast-success"], - "uiElements": ["toast", "confirmation", "transcript"], - "surfaces": ["toast"], - "patterns": ["notification"], - "features": ["session", "export", "notification"], - "states": ["success"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/toast-success.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/toast-success.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/toast-success.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "toast-error", - "title": "Error toast", - "category": "system", - "summary": "", - "tags": [ - "error-recovery", - "toast-error", - "toast", - "error-report", - "toast", - "notification", - "notification", - "error" - ], - "screenLabels": ["error-recovery", "toast-error"], - "uiElements": ["toast", "error-report"], - "surfaces": ["toast"], - "patterns": ["notification"], - "features": ["notification"], - "states": ["error"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/toast-error.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/toast-error.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/toast-error.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "toast-info", - "title": "Info toast", - "category": "system", - "summary": "", - "tags": [ - "debugging", - "toast-info", - "toast", - "confirmation", - "toast", - "notification", - "debug", - "notification", - "default" - ], - "screenLabels": ["debugging", "toast-info"], - "uiElements": ["toast", "confirmation"], - "surfaces": ["toast"], - "patterns": ["notification"], - "features": ["debug", "notification"], - "states": ["default"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/toast-info.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/toast-info.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/toast-info.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "diff-viewer", - "title": "Diff viewer", - "category": "session", - "summary": "", - "tags": [ - "diff-review", - "full-screen-view", - "list", - "keyboard-hints", - "empty-state", - "full-screen", - "list", - "diff", - "session", - "empty" - ], - "screenLabels": ["diff-review"], - "uiElements": ["full-screen-view", "list", "keyboard-hints", "empty-state"], - "surfaces": ["full-screen"], - "patterns": ["list"], - "features": ["diff", "session"], - "states": ["empty"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/diff-viewer.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/diff-viewer.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/diff-viewer.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "thinking-streaming", - "title": "Thinking streaming", - "category": "session", - "summary": "", - "tags": [ - "shell-activity", - "transcript", - "status-indicator", - "inline", - "status", - "thinking", - "shell", - "streaming" - ], - "screenLabels": ["shell-activity"], - "uiElements": ["transcript", "status-indicator"], - "surfaces": ["inline"], - "patterns": ["status"], - "features": ["thinking", "shell"], - "states": ["streaming"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/thinking-streaming.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/thinking-streaming.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/thinking-streaming.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "shell-input-streaming", - "title": "Shell input streaming", - "category": "session", - "summary": "", - "tags": [ - "tool-execution", - "shell-activity", - "transcript", - "tool-card", - "terminal-output", - "status-indicator", - "inline", - "terminal", - "tool", - "shell", - "streaming" - ], - "screenLabels": ["tool-execution", "shell-activity"], - "uiElements": ["transcript", "tool-card", "terminal-output", "status-indicator"], - "surfaces": ["inline"], - "patterns": ["terminal"], - "features": ["tool", "shell"], - "states": ["streaming"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/shell-input-streaming.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/shell-input-streaming.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/shell-input-streaming.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "shell-output-streaming", - "title": "Shell output streaming", - "category": "session", - "summary": "", - "tags": [ - "tool-execution", - "shell-activity", - "transcript", - "tool-card", - "terminal-output", - "status-indicator", - "inline", - "terminal", - "tool", - "shell", - "running", - "streaming" - ], - "screenLabels": ["tool-execution", "shell-activity"], - "uiElements": ["transcript", "tool-card", "terminal-output", "status-indicator"], - "surfaces": ["inline"], - "patterns": ["terminal"], - "features": ["tool", "shell"], - "states": ["running", "streaming"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/shell-output-streaming.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/shell-output-streaming.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/shell-output-streaming.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "shell-execute-succeeded", - "title": "Shell execution succeeded", - "category": "session", - "summary": "", - "tags": [ - "tool-execution", - "shell-activity", - "transcript", - "tool-card", - "terminal-output", - "confirmation", - "inline", - "terminal", - "tool", - "shell", - "success" - ], - "screenLabels": ["tool-execution", "shell-activity"], - "uiElements": ["transcript", "tool-card", "terminal-output", "confirmation"], - "surfaces": ["inline"], - "patterns": ["terminal"], - "features": ["tool", "shell"], - "states": ["success"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/shell-execute-succeeded.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/shell-execute-succeeded.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/shell-execute-succeeded.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "shell-execute-failed", - "title": "Shell execution failed", - "category": "session", - "summary": "", - "tags": [ - "tool-execution", - "shell-activity", - "error-recovery", - "transcript", - "tool-card", - "terminal-output", - "error-report", - "inline", - "terminal", - "error-report", - "tool", - "shell", - "error" - ], - "screenLabels": ["tool-execution", "shell-activity", "error-recovery"], - "uiElements": ["transcript", "tool-card", "terminal-output", "error-report"], - "surfaces": ["inline"], - "patterns": ["terminal", "error-report"], - "features": ["tool", "shell"], - "states": ["error"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/shell-execute-failed.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/shell-execute-failed.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/shell-execute-failed.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "glob-success", - "title": "Glob finds files", - "category": "session", - "summary": "", - "tags": [ - "tool-execution", - "transcript", - "tool-card", - "status-indicator", - "inline", - "status", - "tool", - "search", - "success" - ], - "screenLabels": ["tool-execution"], - "uiElements": ["transcript", "tool-card", "status-indicator"], - "surfaces": ["inline"], - "patterns": ["status"], - "features": ["tool", "search"], - "states": ["success"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/glob-success.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/glob-success.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/glob-success.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "glob-empty", - "title": "Glob finds no files", - "category": "session", - "summary": "", - "tags": [ - "tool-execution", - "transcript", - "tool-card", - "empty-state", - "inline", - "status", - "tool", - "search", - "empty" - ], - "screenLabels": ["tool-execution"], - "uiElements": ["transcript", "tool-card", "empty-state"], - "surfaces": ["inline"], - "patterns": ["status"], - "features": ["tool", "search"], - "states": ["empty"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/glob-empty.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/glob-empty.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/glob-empty.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "grouped-exploration", - "title": "Grouped project exploration", - "category": "session", - "summary": "", - "tags": [ - "tool-execution", - "transcript", - "tool-card", - "status-indicator", - "inline", - "status", - "tool", - "search", - "running" - ], - "screenLabels": ["tool-execution"], - "uiElements": ["transcript", "tool-card", "status-indicator"], - "surfaces": ["inline"], - "patterns": ["status"], - "features": ["tool", "search"], - "states": ["running"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/grouped-exploration.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/grouped-exploration.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/grouped-exploration.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "grep-success", - "title": "Grep finds matches", - "category": "session", - "summary": "", - "tags": [ - "tool-execution", - "transcript", - "tool-card", - "status-indicator", - "inline", - "status", - "tool", - "search", - "success" - ], - "screenLabels": ["tool-execution"], - "uiElements": ["transcript", "tool-card", "status-indicator"], - "surfaces": ["inline"], - "patterns": ["status"], - "features": ["tool", "search"], - "states": ["success"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/grep-success.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/grep-success.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/grep-success.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "grep-empty", - "title": "Grep finds no matches", - "category": "session", - "summary": "", - "tags": [ - "tool-execution", - "transcript", - "tool-card", - "empty-state", - "inline", - "status", - "tool", - "search", - "empty" - ], - "screenLabels": ["tool-execution"], - "uiElements": ["transcript", "tool-card", "empty-state"], - "surfaces": ["inline"], - "patterns": ["status"], - "features": ["tool", "search"], - "states": ["empty"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/grep-empty.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/grep-empty.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/grep-empty.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "grep-failure", - "title": "Grep pattern fails", - "category": "session", - "summary": "", - "tags": [ - "tool-execution", - "error-recovery", - "transcript", - "tool-card", - "error-report", - "inline", - "error-report", - "tool", - "search", - "error" - ], - "screenLabels": ["tool-execution", "error-recovery"], - "uiElements": ["transcript", "tool-card", "error-report"], - "surfaces": ["inline"], - "patterns": ["error-report"], - "features": ["tool", "search"], - "states": ["error"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/grep-failure.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/grep-failure.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/grep-failure.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "webfetch-streaming", - "title": "WebFetch streaming", - "category": "session", - "summary": "", - "tags": [ - "tool-execution", - "transcript", - "tool-card", - "status-indicator", - "inline", - "status", - "tool", - "web", - "streaming" - ], - "screenLabels": ["tool-execution"], - "uiElements": ["transcript", "tool-card", "status-indicator"], - "surfaces": ["inline"], - "patterns": ["status"], - "features": ["tool", "web"], - "states": ["streaming"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/webfetch-streaming.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/webfetch-streaming.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/webfetch-streaming.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "webfetch-success", - "title": "WebFetch succeeds", - "category": "session", - "summary": "", - "tags": [ - "tool-execution", - "transcript", - "tool-card", - "confirmation", - "inline", - "status", - "tool", - "web", - "success" - ], - "screenLabels": ["tool-execution"], - "uiElements": ["transcript", "tool-card", "confirmation"], - "surfaces": ["inline"], - "patterns": ["status"], - "features": ["tool", "web"], - "states": ["success"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/webfetch-success.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/webfetch-success.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/webfetch-success.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "websearch-running", - "title": "WebSearch running", - "category": "session", - "summary": "", - "tags": [ - "tool-execution", - "transcript", - "tool-card", - "status-indicator", - "inline", - "status", - "tool", - "web", - "search", - "running" - ], - "screenLabels": ["tool-execution"], - "uiElements": ["transcript", "tool-card", "status-indicator"], - "surfaces": ["inline"], - "patterns": ["status"], - "features": ["tool", "web", "search"], - "states": ["running"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/websearch-running.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/websearch-running.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/websearch-running.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "websearch-failure", - "title": "WebSearch fails", - "category": "session", - "summary": "", - "tags": [ - "tool-execution", - "error-recovery", - "transcript", - "tool-card", - "error-report", - "inline", - "error-report", - "tool", - "web", - "search", - "error" - ], - "screenLabels": ["tool-execution", "error-recovery"], - "uiElements": ["transcript", "tool-card", "error-report"], - "surfaces": ["inline"], - "patterns": ["error-report"], - "features": ["tool", "web", "search"], - "states": ["error"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/websearch-failure.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/websearch-failure.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/websearch-failure.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "assistant-response-succeeded", - "title": "Assistant response succeeded", - "category": "session", - "summary": "", - "tags": [ - "question-response", - "transcript", - "confirmation", - "inline", - "status", - "assistant", - "response", - "success" - ], - "screenLabels": ["question-response"], - "uiElements": ["transcript", "confirmation"], - "surfaces": ["inline"], - "patterns": ["status"], - "features": ["assistant", "response"], - "states": ["success"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/assistant-response-succeeded.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/assistant-response-succeeded.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/assistant-response-succeeded.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "assistant-response-failed", - "title": "Assistant response failed", - "category": "session", - "summary": "", - "tags": [ - "question-response", - "error-recovery", - "transcript", - "error-report", - "inline", - "error-report", - "assistant", - "response", - "error" - ], - "screenLabels": ["question-response", "error-recovery"], - "uiElements": ["transcript", "error-report"], - "surfaces": ["inline"], - "patterns": ["error-report"], - "features": ["assistant", "response"], - "states": ["error"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/assistant-response-failed.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/assistant-response-failed.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/assistant-response-failed.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "assistant-response-interrupted", - "title": "Assistant response interrupted", - "category": "session", - "summary": "", - "tags": [ - "question-response", - "error-recovery", - "transcript", - "status-indicator", - "inline", - "status", - "assistant", - "response", - "error" - ], - "screenLabels": ["question-response", "error-recovery"], - "uiElements": ["transcript", "status-indicator"], - "surfaces": ["inline"], - "patterns": ["status"], - "features": ["assistant", "response"], - "states": ["error"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/assistant-response-interrupted.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/assistant-response-interrupted.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/assistant-response-interrupted.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "question-input-streaming", - "title": "Question input streaming", - "category": "session", - "summary": "", - "tags": [ - "tool-execution", - "transcript", - "tool-card", - "status-indicator", - "inline", - "status", - "tool", - "question", - "streaming" - ], - "screenLabels": ["tool-execution"], - "uiElements": ["transcript", "tool-card", "status-indicator"], - "surfaces": ["inline"], - "patterns": ["status"], - "features": ["tool", "question"], - "states": ["streaming"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/question-input-streaming.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/question-input-streaming.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/question-input-streaming.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "question-awaiting-form", - "title": "Question awaiting form", - "category": "session", - "summary": "", - "tags": [ - "tool-execution", - "question-response", - "question-prompt", - "button-group", - "keyboard-hints", - "inline", - "form", - "tool", - "question", - "pending" - ], - "screenLabels": ["tool-execution", "question-response"], - "uiElements": ["question-prompt", "button-group", "keyboard-hints"], - "surfaces": ["inline"], - "patterns": ["form"], - "features": ["tool", "question"], - "states": ["pending"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/question-awaiting-form.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/question-awaiting-form.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/question-awaiting-form.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "question-review", - "title": "Question review", - "category": "session", - "summary": "", - "tags": [ - "tool-execution", - "question-response", - "question-prompt", - "confirmation", - "keyboard-hints", - "inline", - "form", - "tool", - "question", - "confirmation" - ], - "screenLabels": ["tool-execution", "question-response"], - "uiElements": ["question-prompt", "confirmation", "keyboard-hints"], - "surfaces": ["inline"], - "patterns": ["form"], - "features": ["tool", "question"], - "states": ["confirmation"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/question-review.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/question-review.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/question-review.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "question-succeeded", - "title": "Question succeeded", - "category": "session", - "summary": "", - "tags": [ - "tool-execution", - "transcript", - "tool-card", - "confirmation", - "inline", - "status", - "tool", - "question", - "success" - ], - "screenLabels": ["tool-execution"], - "uiElements": ["transcript", "tool-card", "confirmation"], - "surfaces": ["inline"], - "patterns": ["status"], - "features": ["tool", "question"], - "states": ["success"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/question-succeeded.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/question-succeeded.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/question-succeeded.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "question-denied", - "title": "Question denied", - "category": "session", - "summary": "", - "tags": [ - "tool-execution", - "error-recovery", - "transcript", - "tool-card", - "destructive-action", - "inline", - "status", - "tool", - "question", - "error" - ], - "screenLabels": ["tool-execution", "error-recovery"], - "uiElements": ["transcript", "tool-card", "destructive-action"], - "surfaces": ["inline"], - "patterns": ["status"], - "features": ["tool", "question"], - "states": ["error"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/question-denied.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/question-denied.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/question-denied.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "read-input-streaming", - "title": "Read input streaming", - "category": "session", - "summary": "", - "tags": [ - "tool-execution", - "transcript", - "tool-card", - "status-indicator", - "inline", - "status", - "tool", - "read", - "streaming" - ], - "screenLabels": ["tool-execution"], - "uiElements": ["transcript", "tool-card", "status-indicator"], - "surfaces": ["inline"], - "patterns": ["status"], - "features": ["tool", "read"], - "states": ["streaming"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/read-input-streaming.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/read-input-streaming.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/read-input-streaming.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "read-permission", - "title": "Read permission", - "category": "session", - "summary": "", - "tags": [ - "tool-execution", - "inline-prompt", - "approval-actions", - "button-group", - "keyboard-hints", - "confirmation", - "inline", - "approval", - "tool", - "read", - "confirmation" - ], - "screenLabels": ["tool-execution"], - "uiElements": ["inline-prompt", "approval-actions", "button-group", "keyboard-hints", "confirmation"], - "surfaces": ["inline"], - "patterns": ["approval"], - "features": ["tool", "read"], - "states": ["confirmation"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/read-permission.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/read-permission.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/read-permission.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "read-succeeded", - "title": "Read succeeded", - "category": "session", - "summary": "", - "tags": [ - "tool-execution", - "transcript", - "tool-card", - "status-indicator", - "inline", - "status", - "tool", - "read", - "success" - ], - "screenLabels": ["tool-execution"], - "uiElements": ["transcript", "tool-card", "status-indicator"], - "surfaces": ["inline"], - "patterns": ["status"], - "features": ["tool", "read"], - "states": ["success"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/read-succeeded.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/read-succeeded.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/read-succeeded.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "read-denied", - "title": "Read denied", - "category": "session", - "summary": "", - "tags": [ - "tool-execution", - "error-recovery", - "transcript", - "tool-card", - "status-indicator", - "inline", - "status", - "tool", - "read", - "error" - ], - "screenLabels": ["tool-execution", "error-recovery"], - "uiElements": ["transcript", "tool-card", "status-indicator"], - "surfaces": ["inline"], - "patterns": ["status"], - "features": ["tool", "read"], - "states": ["error"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/read-denied.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/read-denied.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/read-denied.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "patch-created", - "title": "Patch created file", - "category": "session", - "summary": "", - "tags": [ - "tool-execution", - "transcript", - "tool-card", - "confirmation", - "inline", - "status", - "tool", - "patch", - "success" - ], - "screenLabels": ["tool-execution"], - "uiElements": ["transcript", "tool-card", "confirmation"], - "surfaces": ["inline"], - "patterns": ["status"], - "features": ["tool", "patch"], - "states": ["success"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/patch-created.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/patch-created.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/patch-created.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "patch-updated", - "title": "Patch updated file", - "category": "session", - "summary": "", - "tags": [ - "tool-execution", - "transcript", - "tool-card", - "confirmation", - "inline", - "status", - "tool", - "patch", - "success" - ], - "screenLabels": ["tool-execution"], - "uiElements": ["transcript", "tool-card", "confirmation"], - "surfaces": ["inline"], - "patterns": ["status"], - "features": ["tool", "patch"], - "states": ["success"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/patch-updated.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/patch-updated.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/patch-updated.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "patch-deleted", - "title": "Patch deleted file", - "category": "session", - "summary": "", - "tags": [ - "tool-execution", - "transcript", - "tool-card", - "confirmation", - "inline", - "status", - "tool", - "patch", - "success" - ], - "screenLabels": ["tool-execution"], - "uiElements": ["transcript", "tool-card", "confirmation"], - "surfaces": ["inline"], - "patterns": ["status"], - "features": ["tool", "patch"], - "states": ["success"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/patch-deleted.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/patch-deleted.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/patch-deleted.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "patch-failed", - "title": "Patch failed", - "category": "session", - "summary": "", - "tags": [ - "tool-execution", - "error-recovery", - "transcript", - "tool-card", - "error-report", - "inline", - "error-report", - "tool", - "patch", - "error" - ], - "screenLabels": ["tool-execution", "error-recovery"], - "uiElements": ["transcript", "tool-card", "error-report"], - "surfaces": ["inline"], - "patterns": ["error-report"], - "features": ["tool", "patch"], - "states": ["error"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/patch-failed.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/patch-failed.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/patch-failed.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "session-tabs-running", - "title": "Session tabs (running)", - "category": "session", - "summary": "", - "tags": [ - "session-list", - "tabs", - "full-screen-view", - "status-indicator", - "keyboard-hints", - "transcript", - "full-screen", - "navigation", - "session", - "tabs", - "running" - ], - "screenLabels": ["session-list"], - "uiElements": ["tabs", "full-screen-view", "status-indicator", "keyboard-hints", "transcript"], - "surfaces": ["full-screen"], - "patterns": ["navigation"], - "features": ["session", "tabs"], - "states": ["running"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/session-tabs-running.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/session-tabs-running.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/session-tabs-running.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "session-tabs-idle", - "title": "Session tabs (idle)", - "category": "session", - "summary": "", - "tags": [ - "session-list", - "tabs", - "full-screen-view", - "status-indicator", - "keyboard-hints", - "full-screen", - "navigation", - "session", - "tabs", - "idle" - ], - "screenLabels": ["session-list"], - "uiElements": ["tabs", "full-screen-view", "status-indicator", "keyboard-hints"], - "surfaces": ["full-screen"], - "patterns": ["navigation"], - "features": ["session", "tabs"], - "states": ["idle"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/session-tabs-idle.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/session-tabs-idle.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/session-tabs-idle.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "subagent-running", - "title": "Subagent running", - "category": "session", - "summary": "", - "tags": [ - "subagent-activity", - "transcript", - "tool-card", - "status-indicator", - "inline", - "status", - "agent", - "subagent", - "running" - ], - "screenLabels": ["subagent-activity"], - "uiElements": ["transcript", "tool-card", "status-indicator"], - "surfaces": ["inline"], - "patterns": ["status"], - "features": ["agent", "subagent"], - "states": ["running"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/subagent-running.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/subagent-running.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/subagent-running.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "subagent-completed", - "title": "Subagent completed", - "category": "session", - "summary": "", - "tags": [ - "subagent-activity", - "transcript", - "tool-card", - "confirmation", - "inline", - "status", - "agent", - "subagent", - "success" - ], - "screenLabels": ["subagent-activity"], - "uiElements": ["transcript", "tool-card", "confirmation"], - "surfaces": ["inline"], - "patterns": ["status"], - "features": ["agent", "subagent"], - "states": ["success"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/subagent-completed.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/subagent-completed.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/subagent-completed.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "subagent-session", - "title": "Subagent session", - "category": "session", - "summary": "", - "tags": [ - "subagent-activity", - "session-list", - "transcript", - "panel", - "status-indicator", - "full-screen", - "panel", - "status", - "agent", - "subagent", - "session", - "populated" - ], - "screenLabels": ["subagent-activity", "session-list"], - "uiElements": ["transcript", "panel", "status-indicator"], - "surfaces": ["full-screen", "panel"], - "patterns": ["status"], - "features": ["agent", "subagent", "session"], - "states": ["populated"], - "dimensions": [], - "viewport": { - "cols": 118, - "rows": 34 - }, - "variations": [], - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/subagent-session.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/subagent-session.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/subagent-session.frame.json", - "cols": 118, - "rows": 34 - } - ] - } - ], - "flows": [ - { - "id": "starting-a-session", - "title": "Starting a session", - "group": "Getting started", - "description": "Begin from the OpenCode start screen and prepare a new conversation.", - "replayable": false, - "steps": [ - { - "screenId": "home", - "title": "Start a new conversation", - "trigger": "Open OpenCode" - }, - { - "screenId": "model-picker", - "title": "Choose a model", - "trigger": "Open the model picker" - }, - { - "screenId": "agent-picker", - "title": "Choose an agent", - "trigger": "Open the agent picker" - } - ] - }, - { - "id": "session-tabs-lifecycle", - "title": "Monitoring session tabs", - "group": "Session management", - "description": "Compare an idle session strip with a session actively running work.", - "replayable": true, - "steps": [ - { - "screenId": "session-tabs-running", - "title": "Review a running tab", - "trigger": "Start the selected session" - }, - { - "screenId": "session-tabs-idle", - "title": "Review idle tabs" - } - ] - }, - { - "id": "switching-sessions", - "title": "Switching sessions", - "group": "Session management", - "description": "Find an existing conversation and resume it from the session picker.", - "replayable": false, - "steps": [ - { - "screenId": "command-palette", - "title": "Open session navigation", - "trigger": "Open the command palette" - }, - { - "screenId": "session-picker", - "title": "Open the session picker", - "trigger": "Run Switch session" - }, - { - "screenId": "session-picker-populated", - "title": "Select a session", - "trigger": "Search, then press Enter" - } - ] - }, - { - "id": "renaming-a-session", - "title": "Renaming a session", - "group": "Session management", - "description": "Give the current conversation a recognizable name.", - "replayable": false, - "steps": [ - { - "screenId": "session-picker-populated", - "title": "Identify the current session" - }, - { - "screenId": "session-rename", - "title": "Enter the new name", - "trigger": "Run /rename" - } - ] - }, - { - "id": "forking-a-session", - "title": "Forking a session", - "group": "Session management", - "description": "Branch an existing conversation from a selected message.", - "replayable": false, - "steps": [ - { - "screenId": "session-picker-populated", - "title": "Open the source session" - }, - { - "screenId": "session-fork", - "title": "Choose the fork point", - "trigger": "Run /fork" - } - ] - }, - { - "id": "exporting-a-session", - "title": "Exporting a session", - "group": "Session management", - "description": "Choose an export format and confirm the transcript was copied.", - "replayable": false, - "steps": [ - { - "screenId": "session-export", - "title": "Choose an export format", - "trigger": "Run /export" - }, - { - "screenId": "toast-success", - "title": "Confirm the export", - "trigger": "Complete the export action" - } - ] - }, - { - "id": "patch-success-lifecycle", - "title": "Patch succeeds", - "group": "Tool use", - "description": "Watch a patch stream its input, request permission, and complete successfully.", - "replayable": true, - "steps": [ - { - "screenId": "patch-input-streaming", - "title": "Input streams" - }, - { - "screenId": "permission-prompt", - "title": "Permission is requested" - }, - { - "screenId": "permission-always-selected", - "title": "Persistent permission is selected", - "trigger": "Choose Allow always" - }, - { - "screenId": "permission-always-confirmation", - "title": "Persistent permission is confirmed", - "trigger": "Confirm Allow always" - }, - { - "screenId": "permission-reject-selected", - "title": "Rejection is selected", - "trigger": "Select Reject" - }, - { - "screenId": "permission-fullscreen", - "title": "Permission is inspected fullscreen", - "trigger": "Toggle fullscreen" - }, - { - "screenId": "patch-success", - "title": "Patch succeeds" - } - ] - }, - { - "id": "shell-lifecycle", - "title": "Foreground shell lifecycle", - "group": "Tool use", - "description": "Watch thinking and shell input stream before foreground commands succeed and fail.", - "replayable": true, - "steps": [ - { - "screenId": "thinking-streaming", - "title": "Thinking streams" - }, - { - "screenId": "shell-input-streaming", - "title": "Command input streams" - }, - { - "screenId": "shell-output-streaming", - "title": "Command output streams" - }, - { - "screenId": "shell-execute-succeeded", - "title": "Command succeeds" - }, - { - "screenId": "shell-execute-failed", - "title": "Command fails" - } - ] - }, - { - "id": "search-lifecycle", - "title": "Project search lifecycle", - "group": "Tool use", - "description": "Run built-in glob and grep tools through distinct streaming, grouped, success, empty, and failure states.", - "replayable": true, - "steps": [ - { - "screenId": "glob-success", - "title": "Glob succeeds" - }, - { - "screenId": "glob-empty", - "title": "Glob is empty" - }, - { - "screenId": "grouped-exploration", - "title": "Glob and grep run together" - }, - { - "screenId": "grep-success", - "title": "Grep succeeds" - }, - { - "screenId": "grep-empty", - "title": "Grep is empty" - }, - { - "screenId": "grep-failure", - "title": "Grep fails" - } - ] - }, - { - "id": "web-lifecycle", - "title": "Web tool lifecycle", - "group": "Tool use", - "description": "Run the v2 WebFetch and WebSearch renderers with real tool calls.", - "replayable": true, - "steps": [ - { - "screenId": "webfetch-streaming", - "title": "WebFetch input streams" - }, - { - "screenId": "webfetch-success", - "title": "WebFetch succeeds" - }, - { - "screenId": "websearch-running", - "title": "WebSearch runs" - }, - { - "screenId": "websearch-failure", - "title": "WebSearch reports provider failure" - } - ] - }, - { - "id": "question-lifecycle", - "title": "Question lifecycle", - "group": "Tool use", - "description": "Stream a question call, answer its form, review it, submit it, and deny a second call.", - "replayable": true, - "steps": [ - { - "screenId": "question-input-streaming", - "title": "Question input streams" - }, - { - "screenId": "question-awaiting-form", - "title": "Question awaits an answer" - }, - { - "screenId": "question-review", - "title": "Answers are reviewed" - }, - { - "screenId": "question-succeeded", - "title": "Answers are submitted" - }, - { - "screenId": "question-denied", - "title": "Question is denied" - } - ] - }, - { - "id": "read-file-lifecycle", - "title": "Read file lifecycle", - "group": "Tool use", - "description": "Stream a read call, approve it, then observe success and denial.", - "replayable": true, - "steps": [ - { - "screenId": "read-input-streaming", - "title": "Input streams" - }, - { - "screenId": "read-permission", - "title": "Permission is requested" - }, - { - "screenId": "read-succeeded", - "title": "Read succeeds" - }, - { - "screenId": "read-denied", - "title": "Read is denied" - } - ] - }, - { - "id": "patch-file-changes", - "title": "Patch file changes", - "group": "Tool use", - "description": "Apply real patches that create, update, and delete files, then show verification failure.", - "replayable": true, - "steps": [ - { - "screenId": "patch-created", - "title": "Patch creates a file" - }, - { - "screenId": "patch-updated", - "title": "Patch updates a file" - }, - { - "screenId": "patch-deleted", - "title": "Patch deletes a file" - }, - { - "screenId": "patch-failed", - "title": "Patch fails verification" - } - ] - }, - { - "id": "answering-a-question", - "title": "Answering an agent question", - "group": "Tool use", - "description": "Respond to a structured question without leaving the conversation.", - "replayable": false, - "steps": [ - { - "screenId": "question-prompt", - "title": "Choose or enter an answer", - "trigger": "Submit the question form" - } - ] - }, - { - "id": "subagent-lifecycle", - "title": "Subagent lifecycle", - "group": "Subagents", - "description": "Delegate work, observe its completion, and open the child session.", - "replayable": true, - "steps": [ - { - "screenId": "subagent-running", - "title": "Subagent runs" - }, - { - "screenId": "subagent-completed", - "title": "Subagent completes" - }, - { - "screenId": "subagent-session", - "title": "Open the subagent session" - } - ] - }, - { - "id": "assistant-lifecycle", - "title": "Assistant response lifecycle", - "group": "Responses", - "description": "Observe assistant text while it streams, succeeds, fails, and is interrupted.", - "replayable": true, - "steps": [ - { - "screenId": "assistant-response-succeeded", - "title": "Response succeeds" - }, - { - "screenId": "assistant-response-failed", - "title": "Response fails" - }, - { - "screenId": "assistant-response-interrupted", - "title": "Response is interrupted" - } - ] - }, - { - "id": "connecting-an-integration", - "title": "Connecting an integration", - "group": "Configuration", - "description": "Choose an integration and verify its connection state.", - "replayable": false, - "steps": [ - { - "screenId": "integration-picker", - "title": "Choose an integration" - }, - { - "screenId": "status", - "title": "Check the connection status" - } - ] - }, - { - "id": "managing-mcp-servers", - "title": "Managing MCP servers", - "group": "Configuration", - "description": "Inspect configured MCP servers and their runtime status.", - "replayable": false, - "steps": [ - { - "screenId": "mcp-list", - "title": "Open MCP management" - }, - { - "screenId": "status", - "title": "Inspect MCP status" - } - ] - }, - { - "id": "pairing-a-device", - "title": "Pairing a device", - "group": "Configuration", - "description": "Open the pairing code used to connect another device.", - "replayable": false, - "steps": [ - { - "screenId": "pair", - "title": "Scan the pairing code" - } - ] - }, - { - "id": "reviewing-a-diff", - "title": "Reviewing a diff", - "group": "Review", - "description": "Inspect the working tree and verify whether files have changed.", - "replayable": false, - "steps": [ - { - "screenId": "diff-viewer", - "title": "Open the diff viewer", - "trigger": "Run /diff" - } - ] - } - ] -} diff --git a/packages/lab/catalog/public/drive-captures.json b/packages/lab/catalog/public/drive-captures.json deleted file mode 100644 index abf58a206b6..00000000000 --- a/packages/lab/catalog/public/drive-captures.json +++ /dev/null @@ -1,1660 +0,0 @@ -{ - "format": "opencode-terminal-frame-captures-v1", - "generatedBy": "scripts/capture-opencode-drive.ts", - "variants": [ - { - "id": "opencode", - "label": "Opencode", - "source": "opencode", - "revision": "2a0ccdbfd4589ba2181624f25c55ed4ac0546b2d", - "ref": "2a0ccdbfd4589ba2181624f25c55ed4ac0546b2d", - "committedAt": "2026-08-12T12:45:43-04:00", - "theme": "opencode" - }, - { - "id": "tokyonight", - "label": "Tokyo Night", - "source": "opencode", - "revision": "2a0ccdbfd4589ba2181624f25c55ed4ac0546b2d", - "ref": "2a0ccdbfd4589ba2181624f25c55ed4ac0546b2d", - "committedAt": "2026-08-12T12:45:43-04:00", - "theme": "tokyonight" - }, - { - "id": "everforest", - "label": "Everforest", - "source": "opencode", - "revision": "2a0ccdbfd4589ba2181624f25c55ed4ac0546b2d", - "ref": "2a0ccdbfd4589ba2181624f25c55ed4ac0546b2d", - "committedAt": "2026-08-12T12:45:43-04:00", - "theme": "everforest" - } - ], - "captures": [ - { - "id": "home", - "title": "Home", - "category": "system", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/home.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/home.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/home.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "command-palette", - "title": "Command palette", - "category": "navigation", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/command-palette.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/command-palette.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/command-palette.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "model-picker", - "title": "Model picker", - "category": "picker", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/model-picker.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/model-picker.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/model-picker.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "agent-picker", - "title": "Agent picker", - "category": "picker", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/agent-picker.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/agent-picker.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/agent-picker.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "integration-picker", - "title": "Integrations", - "category": "picker", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/integration-picker.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/integration-picker.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/integration-picker.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "theme-picker", - "title": "Theme picker", - "category": "picker", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/theme-picker.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/theme-picker.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/theme-picker.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "mcp-list", - "title": "MCPs", - "category": "status", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/mcp-list.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/mcp-list.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/mcp-list.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "status", - "title": "Status", - "category": "status", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/status.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/status.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/status.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "debug", - "title": "Debug", - "category": "information", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/debug.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/debug.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/debug.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "help", - "title": "Help", - "category": "information", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/help.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/help.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/help.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "pair", - "title": "Pair device", - "category": "information", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/pair.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/pair.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/pair.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "session-picker", - "title": "Session picker", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/session-picker.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/session-picker.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/session-picker.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "skill-picker", - "title": "Skill picker", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/skill-picker.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/skill-picker.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/skill-picker.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "patch-input-streaming", - "title": "Patch input streaming", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/patch-input-streaming.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/patch-input-streaming.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/patch-input-streaming.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "permission-prompt", - "title": "Permission prompt", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/permission-prompt.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/permission-prompt.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/permission-prompt.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "permission-always-selected", - "title": "Permission prompt (always selected)", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/permission-always-selected.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/permission-always-selected.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/permission-always-selected.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "permission-always-confirmation", - "title": "Always allow confirmation", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/permission-always-confirmation.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/permission-always-confirmation.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/permission-always-confirmation.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "permission-reject-selected", - "title": "Permission prompt (reject selected)", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/permission-reject-selected.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/permission-reject-selected.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/permission-reject-selected.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "permission-fullscreen", - "title": "Permission prompt (fullscreen)", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/permission-fullscreen.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/permission-fullscreen.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/permission-fullscreen.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "patch-success", - "title": "Patch succeeded", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/patch-success.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/patch-success.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/patch-success.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "session-rename", - "title": "Rename session", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/session-rename.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/session-rename.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/session-rename.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "session-fork", - "title": "Fork session", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/session-fork.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/session-fork.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/session-fork.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "session-export", - "title": "Export session", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/session-export.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/session-export.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/session-export.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "question-prompt", - "title": "Question prompt", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/question-prompt.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/question-prompt.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/question-prompt.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "session-picker-populated", - "title": "Session picker (populated)", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/session-picker-populated.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/session-picker-populated.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/session-picker-populated.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "toast-success", - "title": "Success toast", - "category": "system", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/toast-success.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/toast-success.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/toast-success.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "toast-error", - "title": "Error toast", - "category": "system", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/toast-error.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/toast-error.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/toast-error.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "toast-info", - "title": "Info toast", - "category": "system", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/toast-info.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/toast-info.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/toast-info.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "diff-viewer", - "title": "Diff viewer", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/diff-viewer.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/diff-viewer.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/diff-viewer.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "thinking-streaming", - "title": "Thinking streaming", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/thinking-streaming.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/thinking-streaming.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/thinking-streaming.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "shell-input-streaming", - "title": "Shell input streaming", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/shell-input-streaming.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/shell-input-streaming.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/shell-input-streaming.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "shell-output-streaming", - "title": "Shell output streaming", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/shell-output-streaming.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/shell-output-streaming.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/shell-output-streaming.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "shell-execute-succeeded", - "title": "Shell execution succeeded", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/shell-execute-succeeded.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/shell-execute-succeeded.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/shell-execute-succeeded.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "shell-execute-failed", - "title": "Shell execution failed", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/shell-execute-failed.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/shell-execute-failed.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/shell-execute-failed.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "glob-success", - "title": "Glob finds files", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/glob-success.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/glob-success.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/glob-success.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "glob-empty", - "title": "Glob finds no files", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/glob-empty.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/glob-empty.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/glob-empty.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "grouped-exploration", - "title": "Grouped project exploration", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/grouped-exploration.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/grouped-exploration.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/grouped-exploration.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "grep-success", - "title": "Grep finds matches", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/grep-success.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/grep-success.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/grep-success.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "grep-empty", - "title": "Grep finds no matches", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/grep-empty.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/grep-empty.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/grep-empty.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "grep-failure", - "title": "Grep pattern fails", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/grep-failure.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/grep-failure.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/grep-failure.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "webfetch-streaming", - "title": "WebFetch streaming", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/webfetch-streaming.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/webfetch-streaming.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/webfetch-streaming.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "webfetch-success", - "title": "WebFetch succeeds", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/webfetch-success.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/webfetch-success.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/webfetch-success.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "websearch-running", - "title": "WebSearch running", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/websearch-running.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/websearch-running.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/websearch-running.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "websearch-failure", - "title": "WebSearch fails", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/websearch-failure.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/websearch-failure.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/websearch-failure.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "assistant-response-succeeded", - "title": "Assistant response succeeded", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/assistant-response-succeeded.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/assistant-response-succeeded.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/assistant-response-succeeded.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "assistant-response-failed", - "title": "Assistant response failed", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/assistant-response-failed.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/assistant-response-failed.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/assistant-response-failed.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "assistant-response-interrupted", - "title": "Assistant response interrupted", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/assistant-response-interrupted.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/assistant-response-interrupted.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/assistant-response-interrupted.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "question-input-streaming", - "title": "Question input streaming", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/question-input-streaming.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/question-input-streaming.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/question-input-streaming.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "question-awaiting-form", - "title": "Question awaiting form", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/question-awaiting-form.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/question-awaiting-form.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/question-awaiting-form.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "question-review", - "title": "Question review", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/question-review.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/question-review.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/question-review.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "question-succeeded", - "title": "Question succeeded", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/question-succeeded.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/question-succeeded.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/question-succeeded.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "question-denied", - "title": "Question denied", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/question-denied.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/question-denied.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/question-denied.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "read-input-streaming", - "title": "Read input streaming", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/read-input-streaming.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/read-input-streaming.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/read-input-streaming.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "read-permission", - "title": "Read permission", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/read-permission.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/read-permission.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/read-permission.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "read-succeeded", - "title": "Read succeeded", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/read-succeeded.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/read-succeeded.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/read-succeeded.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "read-denied", - "title": "Read denied", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/read-denied.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/read-denied.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/read-denied.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "patch-created", - "title": "Patch created file", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/patch-created.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/patch-created.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/patch-created.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "patch-updated", - "title": "Patch updated file", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/patch-updated.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/patch-updated.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/patch-updated.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "patch-deleted", - "title": "Patch deleted file", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/patch-deleted.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/patch-deleted.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/patch-deleted.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "patch-failed", - "title": "Patch failed", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/patch-failed.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/patch-failed.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/patch-failed.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "session-tabs-running", - "title": "Session tabs (running)", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/session-tabs-running.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/session-tabs-running.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/session-tabs-running.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "session-tabs-idle", - "title": "Session tabs (idle)", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/session-tabs-idle.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/session-tabs-idle.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/session-tabs-idle.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "subagent-running", - "title": "Subagent running", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/subagent-running.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/subagent-running.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/subagent-running.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "subagent-completed", - "title": "Subagent completed", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/subagent-completed.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/subagent-completed.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/subagent-completed.frame.json", - "cols": 118, - "rows": 34 - } - ] - }, - { - "id": "subagent-session", - "title": "Subagent session", - "category": "session", - "frames": [ - { - "variantId": "opencode", - "src": "captures/opencode/subagent-session.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "tokyonight", - "src": "captures/tokyonight/subagent-session.frame.json", - "cols": 118, - "rows": 34 - }, - { - "variantId": "everforest", - "src": "captures/everforest/subagent-session.frame.json", - "cols": 118, - "rows": 34 - } - ] - } - ] -} diff --git a/packages/lab/catalog/scenarios/index.ts b/packages/lab/catalog/scenarios/index.ts deleted file mode 100644 index 2c22e876312..00000000000 --- a/packages/lab/catalog/scenarios/index.ts +++ /dev/null @@ -1,77 +0,0 @@ -import type * as Effect from "effect/Effect" -import type { Driver } from "opencode-drive/driver" -import { executableScenario } from "../catalog/flow" -import { patchSuccessFlow } from "./tools/patch-success" -import { shellLifecycleFlow } from "./tools/shell-lifecycle" -import { subagentLifecycleFlow } from "./subagents/subagent-lifecycle" -import { searchLifecycleFlow } from "./tools/search-lifecycle" -import { webLifecycleFlow } from "./tools/web-lifecycle" -import { assistantLifecycleFlow } from "./responses/assistant-lifecycle" -import { questionLifecycleFlow } from "./tools/question-lifecycle" -import { readLifecycleFlow } from "./tools/read-lifecycle" -import { patchFileChangesFlow } from "./tools/patch-file-changes" -import { sessionTabsFlow } from "./session-tabs" - -export const executableScenarios = [ - executableScenario(patchSuccessFlow), - executableScenario(shellLifecycleFlow), - executableScenario(subagentLifecycleFlow, { llmMode: "serve" }), - executableScenario(searchLifecycleFlow), - executableScenario(webLifecycleFlow), - executableScenario(assistantLifecycleFlow, { clientIsolation: "isolated" }), - executableScenario(questionLifecycleFlow, { clientIsolation: "isolated" }), - executableScenario(readLifecycleFlow, { clientIsolation: "isolated" }), - executableScenario(patchFileChangesFlow), - executableScenario(sessionTabsFlow, { clientIsolation: "isolated" }), -] as const - -export const executableFlows = executableScenarios.map((scenario) => scenario.flow) - -type RegisteredFlow = (typeof executableFlows)[number] -type RegisteredState = RegisteredFlow["states"][number] -type StateStep = { - readonly capture: State["id"] -} & State["metadata"]["step"] -type FlowSteps = Flow["states"] extends readonly [ - infer First extends RegisteredState, - ...infer Rest extends ReadonlyArray, -] - ? readonly [StateStep, ...{ readonly [Index in keyof Rest]: StateStep }] - : never - -export const executableScreens = Object.fromEntries( - executableFlows.flatMap((flow) => flow.states.map((state) => [state.id, state.metadata.screen] as const)), -) as { - readonly [State in RegisteredState as State["id"]]: State["metadata"]["screen"] -} - -export function executableFlowDefinitions(groupId: GroupId) { - return Object.fromEntries( - executableFlows - .filter((flow) => flow.group.id === groupId) - .map((flow) => [ - flow.id, - { - title: flow.title, - description: flow.description, - replayable: true as const, - steps: flow.states.map((state) => ({ capture: state.id, ...state.metadata.step })), - }, - ]), - ) as unknown as { - readonly [Flow in RegisteredFlow as Flow["group"]["id"] extends GroupId ? Flow["id"] : never]: { - readonly title: Flow["title"] - readonly description: Flow["description"] - readonly replayable: true - readonly steps: FlowSteps - } - } -} - -export const executableStates = executableScenarios.flatMap((scenario) => - scenario.states.map((state) => ({ - address: state.address, - run: (driver: Driver, capture: () => Effect.Effect) => - scenario.run({ driver, through: state.id, capture }), - })), -) diff --git a/packages/lab/catalog/scenarios/responses/assistant-lifecycle.ts b/packages/lab/catalog/scenarios/responses/assistant-lifecycle.ts deleted file mode 100644 index 095f52d7243..00000000000 --- a/packages/lab/catalog/scenarios/responses/assistant-lifecycle.ts +++ /dev/null @@ -1,84 +0,0 @@ -import { Effect } from "effect" -import * as Llm from "opencode-drive/llm" -import { defineExecutableFlow } from "../../catalog/flow" -import { taxonomies } from "../../catalog/authored/taxonomies" - -export const assistantLifecycleFlow = defineExecutableFlow( - taxonomies, - { - id: "assistant-lifecycle", - title: "Assistant response lifecycle", - group: { id: "responses", label: "Responses" }, - description: "Observe assistant text while it streams, succeeds, fails, and is interrupted.", - }, - ({ state, program }) => { - const succeeded = state("assistant-response-succeeded", { - screen: { - title: "Assistant response succeeded", - category: "session", - screenLabels: ["question-response"], - uiElements: ["transcript", "confirmation"], - surfaces: "inline", - patterns: "status", - features: ["assistant", "response"], - states: "success", - }, - step: { title: "Response succeeds" }, - }) - const failed = state("assistant-response-failed", { - screen: { - title: "Assistant response failed", - category: "session", - screenLabels: ["question-response", "error-recovery"], - uiElements: ["transcript", "error-report"], - surfaces: "inline", - patterns: "error-report", - features: ["assistant", "response"], - states: "error", - }, - step: { title: "Response fails" }, - }) - const interrupted = state("assistant-response-interrupted", { - screen: { - title: "Assistant response interrupted", - category: "session", - screenLabels: ["question-response", "error-recovery"], - uiElements: ["transcript", "status-indicator"], - surfaces: "inline", - patterns: "status", - features: ["assistant", "response"], - states: "error", - }, - step: { title: "Response is interrupted" }, - }) - - return program([succeeded, failed, interrupted], ({ driver, checkpoint }) => - Effect.gen(function* () { - yield* driver.llm.queue(Llm.text("This assistant response completes successfully.")) - yield* driver.ui.submit("Show a successful streaming assistant response.") - yield* driver.ui.waitFor("completes successfully.", { timeout: 15_000 }) - yield* checkpoint(succeeded) - - yield* driver.llm.queue( - Llm.text("This response starts but the simulated provider disconnects.", { delay: 40, chunkSize: 8 }), - Llm.disconnect(), - ) - yield* driver.ui.submit("Show a failed assistant response.") - yield* driver.ui.waitFor("simulated provider disconnects", { timeout: 15_000 }) - yield* Effect.sleep(1_000) - yield* checkpoint(failed) - - yield* driver.llm.queue( - Llm.text("This response remains active until the user interrupts it."), - Llm.pause(30_000), - ) - yield* driver.ui.submit("Show an interrupted assistant response.") - yield* driver.ui.waitFor("remains active until", { timeout: 15_000 }) - yield* driver.ui.press("escape") - yield* driver.ui.press("escape") - yield* driver.ui.waitFor("interrupted", { timeout: 15_000 }) - yield* checkpoint(interrupted) - }), - ) - }, -) diff --git a/packages/lab/catalog/scenarios/runtime.ts b/packages/lab/catalog/scenarios/runtime.ts deleted file mode 100644 index 160f1c1e2c7..00000000000 --- a/packages/lab/catalog/scenarios/runtime.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { Effect } from "effect" -import { Tool } from "opencode-drive" -import type { Options } from "opencode-drive/driver" - -export const catalogViewport = { cols: 118, rows: 34 } as const - -export function catalogScenarioRuntime(options: { readonly opencode: string; readonly theme?: string }): Options { - return { - project: { - files: { - "fixture.txt": "before\n", - "src/ledger.ts": [ - "export const credits = [8, 13, 21]", - "export const total = credits.reduce((sum, value) => sum + value, 0)", - "", - ].join("\n"), - }, - }, - config: { - autoupdate: false, - permissions: [ - { action: "*", resource: "*", effect: "ask" }, - { action: "shell", resource: "*", effect: "allow" }, - { action: "subagent", resource: "*", effect: "allow" }, - ], - agents: { - reviewer: { description: "Reviews deterministic UI fixtures", mode: "primary" }, - researcher: { description: "Explores fixture source code", mode: "subagent" }, - }, - }, - tools: (tools) => { - tools.handle("shell", ({ input, progress }) => - Effect.gen(function* () { - yield* progress(`streamed output: ${input.command}\n`) - yield* Effect.sleep(1_500) - if (input.command.includes("fail")) { - return yield* new Tool.Failure({ message: "catalog shell failure" }) - } - return { output: "catalog shell success\n", exit: 0 } - }), - ) - tools.handle("websearch", () => Effect.fail(new Tool.Failure({ message: "catalog web search provider failure" }))) - }, - setup: - options.theme === undefined - ? undefined - : ({ fs }) => - fs.writeFile( - ".opencode/tui.json", - `${JSON.stringify({ $schema: "https://opencode.ai/tui.json", theme: options.theme }, undefined, 2)}\n`, - ), - tui: { viewport: catalogViewport }, - opencode: { dev: options.opencode }, - } -} diff --git a/packages/lab/catalog/scenarios/session-tabs.ts b/packages/lab/catalog/scenarios/session-tabs.ts deleted file mode 100644 index d42e84c2522..00000000000 --- a/packages/lab/catalog/scenarios/session-tabs.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { Effect } from "effect" -import * as Llm from "opencode-drive/llm" -import { defineExecutableFlow } from "../catalog/flow" -import { taxonomies } from "../catalog/authored/taxonomies" - -export const sessionTabsFlow = defineExecutableFlow( - taxonomies, - { - id: "session-tabs-lifecycle", - title: "Monitoring session tabs", - group: { id: "session-management", label: "Session management" }, - description: "Compare an idle session strip with a session actively running work.", - }, - ({ state, program }) => { - const running = state("session-tabs-running", { - screen: { - title: "Session tabs (running)", - category: "session", - screenLabels: ["session-list"], - uiElements: ["tabs", "full-screen-view", "status-indicator", "keyboard-hints", "transcript"], - surfaces: "full-screen", - patterns: "navigation", - features: ["session", "tabs"], - states: "running", - }, - step: { title: "Review a running tab", trigger: "Start the selected session" }, - }) - const idle = state("session-tabs-idle", { - screen: { - title: "Session tabs (idle)", - category: "session", - screenLabels: ["session-list"], - uiElements: ["tabs", "full-screen-view", "status-indicator", "keyboard-hints"], - surfaces: "full-screen", - patterns: "navigation", - features: ["session", "tabs"], - states: "idle", - }, - step: { title: "Review idle tabs" }, - }) - - return program([running, idle], ({ driver, checkpoint }) => - Effect.gen(function* () { - yield* driver.llm.queue(Llm.text("Working on a tab audit."), Llm.pause(2_000), Llm.text("Tab audit complete.")) - yield* driver.ui.submit("Audit the current tab state.") - yield* driver.ui.waitFor("Working on a tab audit.", { timeout: 15_000 }) - yield* checkpoint(running) - yield* driver.ui.waitFor("Tab audit complete.", { timeout: 15_000 }) - yield* checkpoint(idle) - }), - ) - }, -) diff --git a/packages/lab/catalog/scenarios/subagents/subagent-lifecycle.ts b/packages/lab/catalog/scenarios/subagents/subagent-lifecycle.ts deleted file mode 100644 index 622b5234831..00000000000 --- a/packages/lab/catalog/scenarios/subagents/subagent-lifecycle.ts +++ /dev/null @@ -1,131 +0,0 @@ -import { Effect, Stream } from "effect" -import { Llm, type JsonValue } from "opencode-drive" -import { defineExecutableFlow } from "../../catalog/flow" -import { taxonomies } from "../../catalog/authored/taxonomies" - -export const subagentLifecycleFlow = defineExecutableFlow( - taxonomies, - { - id: "subagent-lifecycle", - title: "Subagent lifecycle", - group: { id: "subagents", label: "Subagents" }, - description: "Delegate work, observe its completion, and open the child session.", - }, - ({ state, program }) => { - const running = state("subagent-running", { - screen: { - title: "Subagent running", - category: "session", - screenLabels: ["subagent-activity"], - uiElements: ["transcript", "tool-card", "status-indicator"], - surfaces: "inline", - patterns: "status", - features: ["agent", "subagent"], - states: "running", - }, - step: { title: "Subagent runs" }, - }) - const completed = state("subagent-completed", { - screen: { - title: "Subagent completed", - category: "session", - screenLabels: ["subagent-activity"], - uiElements: ["transcript", "tool-card", "confirmation"], - surfaces: "inline", - patterns: "status", - features: ["agent", "subagent"], - states: "success", - }, - step: { title: "Subagent completes" }, - }) - const session = state("subagent-session", { - screen: { - title: "Subagent session", - category: "session", - screenLabels: ["subagent-activity", "session-list"], - uiElements: ["transcript", "panel", "status-indicator"], - surfaces: ["full-screen", "panel"], - patterns: "status", - features: ["agent", "subagent", "session"], - states: "populated", - }, - step: { title: "Open the subagent session" }, - }) - - return program([running, completed, session], ({ driver, checkpoint }) => - Effect.gen(function* () { - let phase = 0 - yield* driver.llm.serve((request) => { - if (JSON.stringify(request.body).includes("title generator")) { - return Stream.make(Llm.text("Delegating ledger lifecycle")) - } - if (phase === 0) { - phase++ - const tool = subagentTool(request.body) - return Stream.make( - Llm.reasoning("I will delegate the ledger inspection."), - Llm.toolCall({ - index: 0, - id: "call_catalog_subagent", - name: tool, - input: subagentInput(tool), - }), - Llm.finish("tool-calls"), - ) - } - if (phase === 1) { - phase++ - return Stream.make(Llm.pause(1_500), Llm.text("The child inspected src/ledger.ts and calculated total 42.")) - } - phase++ - return Stream.make(Llm.text("Subagent completed the ledger lifecycle.")) - }) - - yield* driver.ui.submit("Use a subagent to inspect src/ledger.ts and calculate the total.") - yield* driver.ui.waitFor("Inspect ledger lifecycle", { timeout: 15_000 }) - yield* checkpoint(running) - yield* driver.ui.waitFor("Subagent completed the ledger lifecycle.", { timeout: 30_000 }) - yield* checkpoint(completed) - yield* driver.ui.press("p", { ctrl: true }) - yield* driver.ui.waitFor("Commands") - yield* driver.ui.type("Toggle subagent picker") - yield* driver.ui.waitFor("Toggle subagent picker") - yield* driver.ui.enter() - yield* driver.ui.waitFor("Subagents") - yield* driver.ui.press("a", { ctrl: true }) - yield* driver.ui.waitFor("Inspect ledger lifecycle") - yield* driver.ui.enter() - yield* driver.ui.waitFor("calculated total 42", { timeout: 15_000 }) - yield* checkpoint(session) - }), - ) - }, -) - -function subagentTool(body: JsonValue) { - const names = offeredTools(body) - if (names.includes("subagent")) return "subagent" - if (names.includes("task")) return "task" - throw new Error(`OpenCode did not offer a subagent tool: ${names.join(", ")}`) -} - -function subagentInput(tool: string): JsonValue { - const input = { - description: "Inspect ledger lifecycle", - prompt: "Read src/ledger.ts and report its exports, values, and calculated total.", - } - if (tool === "subagent") return { ...input, agent: "researcher" } - return { ...input, subagent_type: "researcher" } -} - -function offeredTools(body: JsonValue) { - if (!isJsonObject(body) || !Array.isArray(body.tools)) return [] - return body.tools.flatMap((tool) => { - if (!isJsonObject(tool) || !isJsonObject(tool.function)) return [] - return typeof tool.function.name === "string" ? [tool.function.name] : [] - }) -} - -function isJsonObject(value: JsonValue | undefined): value is { readonly [key: string]: JsonValue } { - return typeof value === "object" && value !== null && !Array.isArray(value) -} diff --git a/packages/lab/catalog/scenarios/tools/patch-file-changes.ts b/packages/lab/catalog/scenarios/tools/patch-file-changes.ts deleted file mode 100644 index 83f6fbff8e2..00000000000 --- a/packages/lab/catalog/scenarios/tools/patch-file-changes.ts +++ /dev/null @@ -1,107 +0,0 @@ -import { Effect } from "effect" -import * as Llm from "opencode-drive/llm" -import { defineExecutableFlow } from "../../catalog/flow" -import { taxonomies } from "../../catalog/authored/taxonomies" - -const patch = (...lines: ReadonlyArray) => ["*** Begin Patch", ...lines, "*** End Patch"].join("\n") -const screen = (title: string, states: "success" | "error") => ({ - title, - category: "session" as const, - screenLabels: states === "error" ? (["tool-execution", "error-recovery"] as const) : (["tool-execution"] as const), - uiElements: - states === "error" - ? (["transcript", "tool-card", "error-report"] as const) - : (["transcript", "tool-card", "confirmation"] as const), - surfaces: "inline" as const, - patterns: states === "error" ? ("error-report" as const) : ("status" as const), - features: ["tool", "patch"] as const, - states, -}) - -export const patchFileChangesFlow = defineExecutableFlow( - taxonomies, - { - id: "patch-file-changes", - title: "Patch file changes", - group: { id: "tool-use", label: "Tool use" }, - description: "Apply real patches that create, update, and delete files, then show verification failure.", - }, - ({ state, program }) => { - const created = state("patch-created", { - screen: screen("Patch created file", "success"), - step: { title: "Patch creates a file" }, - }) - const updated = state("patch-updated", { - screen: screen("Patch updated file", "success"), - step: { title: "Patch updates a file" }, - }) - const deleted = state("patch-deleted", { - screen: screen("Patch deleted file", "success"), - step: { title: "Patch deletes a file" }, - }) - const failed = state("patch-failed", { - screen: screen("Patch failed", "error"), - step: { title: "Patch fails verification" }, - }) - - return program([created, updated, deleted, failed], ({ driver, checkpoint }) => - Effect.gen(function* () { - yield* driver.llm.queue( - Llm.toolCall({ - index: 0, - id: "call_patch_create", - name: "patch", - input: { patchText: patch("*** Add File: patched.txt", "+created by patch") }, - }), - Llm.finish("tool-calls"), - ) - yield* driver.llm.queue( - Llm.pause(800), - Llm.toolCall({ - index: 0, - id: "call_patch_update", - name: "patch", - input: { patchText: patch("*** Update File: fixture.txt", "@@", "-before", "+updated by patch") }, - }), - Llm.finish("tool-calls"), - ) - yield* driver.llm.queue( - Llm.pause(800), - Llm.toolCall({ - index: 0, - id: "call_patch_delete", - name: "patch", - input: { patchText: patch("*** Delete File: patched.txt") }, - }), - Llm.finish("tool-calls"), - ) - yield* driver.llm.queue( - Llm.pause(800), - Llm.toolCall({ - index: 0, - id: "call_patch_failure", - name: "patch", - input: { patchText: patch("*** Update File: missing-patch.txt", "@@", "-missing", "+still missing") }, - }), - Llm.finish("tool-calls"), - ) - yield* driver.llm.queue(Llm.text("The patch file-change lifecycle is complete.")) - - yield* driver.ui.submit( - "Create a file, update the fixture, delete the created file, then attempt an invalid patch.", - ) - yield* driver.ui.getNode("session.permission.action.once").pipe(Effect.flatMap(driver.ui.click)) - yield* Effect.sleep(300) - yield* checkpoint(created) - yield* driver.ui.getNode("session.permission.action.once").pipe(Effect.flatMap(driver.ui.click)) - yield* Effect.sleep(300) - yield* checkpoint(updated) - yield* driver.ui.getNode("session.permission.action.once").pipe(Effect.flatMap(driver.ui.click)) - yield* Effect.sleep(300) - yield* checkpoint(deleted) - yield* driver.ui.waitFor("The patch file-change lifecycle is complete.", { timeout: 15_000 }) - yield* checkpoint(failed) - }), - ) - }, -) diff --git a/packages/lab/catalog/scenarios/tools/patch-success.ts b/packages/lab/catalog/scenarios/tools/patch-success.ts deleted file mode 100644 index 3d2731479f9..00000000000 --- a/packages/lab/catalog/scenarios/tools/patch-success.ts +++ /dev/null @@ -1,181 +0,0 @@ -import { Effect } from "effect" -import * as Llm from "opencode-drive/llm" -import { defineExecutableFlow } from "../../catalog/flow" -import { taxonomies } from "../../catalog/authored/taxonomies" - -export const patchSuccessFlow = defineExecutableFlow( - taxonomies, - { - id: "patch-success-lifecycle", - title: "Patch succeeds", - group: { id: "tool-use", label: "Tool use" }, - description: "Watch a patch stream its input, request permission, and complete successfully.", - }, - ({ state, program }) => { - const inputStreaming = state("patch-input-streaming", { - screen: { - title: "Patch input streaming", - category: "session", - screenLabels: ["tool-execution"], - uiElements: ["transcript", "tool-card", "status-indicator"], - surfaces: "inline", - patterns: "status", - features: ["tool", "patch"], - states: "streaming", - }, - step: { title: "Input streams" }, - }) - const permissionPrompt = state("permission-prompt", { - screen: { - title: "Permission prompt", - category: "session", - screenLabels: ["tool-execution"], - uiElements: [ - "inline-prompt", - "approval-actions", - "button-group", - "keyboard-hints", - "confirmation", - "destructive-action", - ], - surfaces: "inline", - patterns: "approval", - features: ["permission", "tool", "patch"], - states: "confirmation", - }, - step: { title: "Permission is requested" }, - }) - const alwaysSelected = state("permission-always-selected", { - screen: { - title: "Permission prompt (always selected)", - category: "session", - screenLabels: ["tool-execution"], - uiElements: ["inline-prompt", "approval-actions", "button-group", "keyboard-hints", "confirmation"], - surfaces: "inline", - patterns: "approval", - features: ["permission", "tool", "patch"], - states: "selected", - }, - step: { title: "Persistent permission is selected", trigger: "Choose Allow always" }, - }) - const alwaysConfirmation = state("permission-always-confirmation", { - screen: { - title: "Always allow confirmation", - category: "session", - screenLabels: ["tool-execution"], - uiElements: ["inline-prompt", "approval-actions", "button-group", "keyboard-hints", "confirmation"], - surfaces: "inline", - patterns: "approval", - features: ["permission", "tool", "patch"], - states: "confirmation", - }, - step: { title: "Persistent permission is confirmed", trigger: "Confirm Allow always" }, - }) - const rejectSelected = state("permission-reject-selected", { - screen: { - title: "Permission prompt (reject selected)", - category: "session", - screenLabels: ["tool-execution"], - uiElements: ["inline-prompt", "approval-actions", "button-group", "keyboard-hints", "destructive-action"], - surfaces: "inline", - patterns: "approval", - features: ["permission", "tool", "patch"], - states: "selected", - }, - step: { title: "Rejection is selected", trigger: "Select Reject" }, - }) - const permissionFullscreen = state("permission-fullscreen", { - screen: { - title: "Permission prompt (fullscreen)", - category: "session", - screenLabels: ["tool-execution"], - uiElements: [ - "inline-prompt", - "approval-actions", - "button-group", - "keyboard-hints", - "confirmation", - "full-screen-view", - ], - surfaces: "full-screen", - patterns: "approval", - features: ["permission", "tool", "patch"], - states: "expanded", - }, - step: { title: "Permission is inspected fullscreen", trigger: "Toggle fullscreen" }, - }) - const success = state("patch-success", { - screen: { - title: "Patch succeeded", - category: "session", - screenLabels: ["tool-execution"], - uiElements: ["transcript", "tool-card", "confirmation"], - surfaces: "inline", - patterns: "status", - features: ["tool", "patch"], - states: "success", - }, - step: { title: "Patch succeeds" }, - }) - - return program( - [ - inputStreaming, - permissionPrompt, - alwaysSelected, - alwaysConfirmation, - rejectSelected, - permissionFullscreen, - success, - ], - ({ driver, checkpoint }) => - Effect.gen(function* () { - yield* driver.llm.queue( - Llm.toolCall( - { - index: 0, - id: "call_patch_success", - name: "patch", - input: { - patchText: [ - "*** Begin Patch", - "*** Update File: fixture.txt", - "@@", - "-before", - "+after", - "*** End Patch", - ].join("\n"), - }, - }, - { delay: 90, chunkSize: 8 }, - ), - Llm.finish("tool-calls"), - ) - yield* driver.ui.submit("Change fixture.txt from before to after.") - yield* Effect.sleep(450) - yield* checkpoint(inputStreaming) - yield* driver.ui.waitFor("Permission required", { timeout: 15_000 }) - yield* checkpoint(permissionPrompt) - yield* driver.ui.arrow("right") - yield* checkpoint(alwaysSelected) - yield* driver.ui.enter() - yield* driver.ui.waitFor("Always allow") - yield* checkpoint(alwaysConfirmation) - yield* driver.ui.press("escape") - yield* driver.ui.waitFor("Permission required") - yield* driver.ui.arrow("right") - yield* driver.ui.arrow("right") - yield* checkpoint(rejectSelected) - yield* driver.ui.press("f", { ctrl: true }) - yield* Effect.sleep(150) - yield* checkpoint(permissionFullscreen) - yield* driver.ui.press("f", { ctrl: true }) - yield* Effect.sleep(150) - yield* driver.llm.queue(Llm.text("The fixture was updated.")) - yield* driver.ui.getNode("session.permission.action.once").pipe(Effect.flatMap(driver.ui.click)) - yield* driver.ui.waitFor("The fixture was updated.", { timeout: 15_000 }) - yield* checkpoint(success) - }), - ) - }, -) diff --git a/packages/lab/catalog/scenarios/tools/question-lifecycle.ts b/packages/lab/catalog/scenarios/tools/question-lifecycle.ts deleted file mode 100644 index 3187ee295d4..00000000000 --- a/packages/lab/catalog/scenarios/tools/question-lifecycle.ts +++ /dev/null @@ -1,144 +0,0 @@ -import { Effect } from "effect" -import * as Llm from "opencode-drive/llm" -import { defineExecutableFlow } from "../../catalog/flow" -import { taxonomies } from "../../catalog/authored/taxonomies" - -const questions = [ - { - header: "Runtime", - question: "Which runtime should the catalog fixture use?", - options: [ - { label: "Bun", description: "Use the repository's configured runtime." }, - { label: "Node", description: "Use the Node.js compatibility runtime." }, - ], - }, - { - header: "Validation", - question: "Which validation should run?", - options: [ - { label: "Focused", description: "Run only the focused scenario tests." }, - { label: "Full", description: "Run the complete validation suite." }, - ], - }, -] as const - -export const questionLifecycleFlow = defineExecutableFlow( - taxonomies, - { - id: "question-lifecycle", - title: "Question lifecycle", - group: { id: "tool-use", label: "Tool use" }, - description: "Stream a question call, answer its form, review it, submit it, and deny a second call.", - }, - ({ state, program }) => { - const inputStreaming = state("question-input-streaming", { - screen: { - title: "Question input streaming", - category: "session", - screenLabels: ["tool-execution"], - uiElements: ["transcript", "tool-card", "status-indicator"], - surfaces: "inline", - patterns: "status", - features: ["tool", "question"], - states: "streaming", - }, - step: { title: "Question input streams" }, - }) - const awaiting = state("question-awaiting-form", { - screen: { - title: "Question awaiting form", - category: "session", - screenLabels: ["tool-execution", "question-response"], - uiElements: ["question-prompt", "button-group", "keyboard-hints"], - surfaces: "inline", - patterns: "form", - features: ["tool", "question"], - states: "pending", - }, - step: { title: "Question awaits an answer" }, - }) - const review = state("question-review", { - screen: { - title: "Question review", - category: "session", - screenLabels: ["tool-execution", "question-response"], - uiElements: ["question-prompt", "confirmation", "keyboard-hints"], - surfaces: "inline", - patterns: "form", - features: ["tool", "question"], - states: "confirmation", - }, - step: { title: "Answers are reviewed" }, - }) - const succeeded = state("question-succeeded", { - screen: { - title: "Question succeeded", - category: "session", - screenLabels: ["tool-execution"], - uiElements: ["transcript", "tool-card", "confirmation"], - surfaces: "inline", - patterns: "status", - features: ["tool", "question"], - states: "success", - }, - step: { title: "Answers are submitted" }, - }) - const denied = state("question-denied", { - screen: { - title: "Question denied", - category: "session", - screenLabels: ["tool-execution", "error-recovery"], - uiElements: ["transcript", "tool-card", "destructive-action"], - surfaces: "inline", - patterns: "status", - features: ["tool", "question"], - states: "error", - }, - step: { title: "Question is denied" }, - }) - - return program([inputStreaming, awaiting, review, succeeded, denied], ({ driver, checkpoint }) => - Effect.gen(function* () { - yield* driver.llm.queue( - Llm.toolCall( - { index: 0, id: "call_catalog_question", name: "question", input: { questions } }, - { delay: 100, chunkSize: 7 }, - ), - Llm.finish("tool-calls"), - ) - yield* driver.llm.queue(Llm.text("The catalog answers were submitted.")) - yield* driver.ui.submit("Ask me which runtime and validation mode to use.") - yield* Effect.sleep(450) - yield* checkpoint(inputStreaming) - yield* driver.ui.waitFor("Permission required", { timeout: 15_000 }) - yield* driver.ui.enter() - yield* driver.ui.waitFor("Which runtime should", { timeout: 15_000 }) - yield* checkpoint(awaiting) - yield* driver.ui.enter() - yield* driver.ui.enter() - yield* driver.ui.waitFor("Review", { timeout: 5_000 }) - yield* checkpoint(review) - yield* driver.ui.enter() - yield* driver.ui.waitFor("The catalog answers were submitted.", { timeout: 15_000 }) - yield* checkpoint(succeeded) - - yield* driver.llm.queue( - Llm.toolCall({ - index: 0, - id: "call_catalog_question_denied", - name: "question", - input: { questions: [questions[0]] }, - }), - Llm.finish("tool-calls"), - ) - yield* driver.ui.submit("Ask one more runtime question that I will dismiss.") - yield* driver.ui.waitFor("Permission required", { timeout: 15_000 }) - yield* driver.ui.enter() - yield* driver.ui.waitFor("Which runtime should", { timeout: 15_000 }) - yield* driver.ui.press("escape") - yield* Effect.sleep(500) - yield* checkpoint(denied) - }), - ) - }, -) diff --git a/packages/lab/catalog/scenarios/tools/read-lifecycle.ts b/packages/lab/catalog/scenarios/tools/read-lifecycle.ts deleted file mode 100644 index c242e7f22dd..00000000000 --- a/packages/lab/catalog/scenarios/tools/read-lifecycle.ts +++ /dev/null @@ -1,83 +0,0 @@ -import { Effect } from "effect" -import * as Llm from "opencode-drive/llm" -import { defineExecutableFlow } from "../../catalog/flow" -import { taxonomies } from "../../catalog/authored/taxonomies" - -const screen = (title: string, states: "streaming" | "running" | "success" | "error" | "confirmation") => ({ - title, - category: "session" as const, - screenLabels: states === "error" ? (["tool-execution", "error-recovery"] as const) : (["tool-execution"] as const), - uiElements: - states === "confirmation" - ? (["inline-prompt", "approval-actions", "button-group", "keyboard-hints", "confirmation"] as const) - : (["transcript", "tool-card", "status-indicator"] as const), - surfaces: "inline" as const, - patterns: states === "confirmation" ? ("approval" as const) : ("status" as const), - features: ["tool", "read"] as const, - states, -}) - -export const readLifecycleFlow = defineExecutableFlow( - taxonomies, - { - id: "read-file-lifecycle", - title: "Read file lifecycle", - group: { id: "tool-use", label: "Tool use" }, - description: "Stream a read call, approve it, then observe success and denial.", - }, - ({ state, program }) => { - const input = state("read-input-streaming", { - screen: screen("Read input streaming", "streaming"), - step: { title: "Input streams" }, - }) - const permission = state("read-permission", { - screen: screen("Read permission", "confirmation"), - step: { title: "Permission is requested" }, - }) - const succeeded = state("read-succeeded", { - screen: screen("Read succeeded", "success"), - step: { title: "Read succeeds" }, - }) - const denied = state("read-denied", { screen: screen("Read denied", "error"), step: { title: "Read is denied" } }) - - return program([input, permission, succeeded, denied], ({ driver, checkpoint }) => - Effect.gen(function* () { - yield* driver.llm.queue( - Llm.toolCall( - { index: 0, id: "call_read_success", name: "read", input: { path: "fixture.txt" } }, - { delay: 100, chunkSize: 4 }, - ), - Llm.finish("tool-calls"), - ) - yield* driver.llm.queue(Llm.text("The fixture read succeeded.")) - yield* driver.ui.submit("Read the fixture file.") - yield* Effect.sleep(350) - yield* checkpoint(input) - yield* driver.ui.waitFor("Permission required", { timeout: 15_000 }) - yield* checkpoint(permission) - yield* driver.ui.enter() - yield* driver.ui.waitFor("The fixture read succeeded.", { timeout: 15_000 }) - yield* checkpoint(succeeded) - - yield* driver.llm.queue( - Llm.toolCall({ index: 0, id: "call_read_failure", name: "read", input: { path: "missing-fixture.txt" } }), - Llm.finish("tool-calls"), - ) - yield* driver.llm.queue(Llm.text("The missing-file read failed as expected.")) - yield* driver.ui.submit("Now try to read a missing file.") - yield* driver.ui.waitFor("Permission required", { timeout: 15_000 }) - yield* driver.ui.enter() - yield* driver.ui.waitFor("The missing-file read failed as expected.", { timeout: 15_000 }) - yield* driver.llm.queue( - Llm.toolCall({ index: 0, id: "call_read_denied", name: "read", input: { path: "src/ledger.ts" } }), - Llm.finish("tool-calls"), - ) - yield* driver.ui.submit("Now read the ledger file.") - yield* driver.ui.waitFor("Permission required", { timeout: 15_000 }) - yield* driver.ui.press("escape") - yield* driver.ui.waitFor("src/ledger.ts", { timeout: 15_000 }) - yield* checkpoint(denied) - }), - ) - }, -) diff --git a/packages/lab/catalog/scenarios/tools/search-lifecycle.ts b/packages/lab/catalog/scenarios/tools/search-lifecycle.ts deleted file mode 100644 index 7de6309584b..00000000000 --- a/packages/lab/catalog/scenarios/tools/search-lifecycle.ts +++ /dev/null @@ -1,147 +0,0 @@ -import { Effect } from "effect" -import * as Llm from "opencode-drive/llm" -import { defineExecutableFlow } from "../../catalog/flow" -import { taxonomies } from "../../catalog/authored/taxonomies" - -const screen = (title: string, states: "streaming" | "running" | "success" | "empty" | "error") => ({ - title, - category: "session" as const, - screenLabels: states === "error" ? (["tool-execution", "error-recovery"] as const) : (["tool-execution"] as const), - uiElements: - states === "error" - ? (["transcript", "tool-card", "error-report"] as const) - : states === "empty" - ? (["transcript", "tool-card", "empty-state"] as const) - : (["transcript", "tool-card", "status-indicator"] as const), - surfaces: "inline" as const, - patterns: states === "error" ? ("error-report" as const) : ("status" as const), - features: ["tool", "search"] as const, - states, -}) - -export const searchLifecycleFlow = defineExecutableFlow( - taxonomies, - { - id: "search-lifecycle", - title: "Project search lifecycle", - group: { id: "tool-use", label: "Tool use" }, - description: - "Run built-in glob and grep tools through distinct streaming, grouped, success, empty, and failure states.", - }, - ({ state, program }) => { - const globSuccess = state("glob-success", { - screen: screen("Glob finds files", "success"), - step: { title: "Glob succeeds" }, - }) - const globEmpty = state("glob-empty", { - screen: screen("Glob finds no files", "empty"), - step: { title: "Glob is empty" }, - }) - const groupedExploration = state("grouped-exploration", { - screen: screen("Grouped project exploration", "running"), - step: { title: "Glob and grep run together" }, - }) - const grepSuccess = state("grep-success", { - screen: screen("Grep finds matches", "success"), - step: { title: "Grep succeeds" }, - }) - const grepEmpty = state("grep-empty", { - screen: screen("Grep finds no matches", "empty"), - step: { title: "Grep is empty" }, - }) - const grepFailure = state("grep-failure", { - screen: screen("Grep pattern fails", "error"), - step: { title: "Grep fails" }, - }) - - return program( - [globSuccess, globEmpty, groupedExploration, grepSuccess, grepEmpty, grepFailure], - ({ driver, checkpoint }) => - Effect.gen(function* () { - yield* driver.llm.queue( - Llm.toolCall( - { index: 0, id: "call_glob_success", name: "glob", input: { pattern: "src/**/*.ts" } }, - { delay: 100, chunkSize: 4 }, - ), - Llm.finish("tool-calls"), - ) - yield* driver.llm.queue(Llm.text("The first glob search is complete.")) - yield* driver.llm.queue( - Llm.toolCall({ index: 0, id: "call_glob_empty", name: "glob", input: { pattern: "missing/**/*.rs" } }), - Llm.finish("tool-calls"), - ) - yield* driver.llm.queue(Llm.text("The empty glob search is complete.")) - yield* driver.llm.queue( - Llm.toolCall({ index: 0, id: "call_group_glob", name: "glob", input: { pattern: "**/*.ts" } }), - Llm.toolCall({ index: 1, id: "call_group_grep", name: "grep", input: { pattern: "credits", path: "src" } }), - Llm.finish("tool-calls"), - ) - yield* driver.llm.queue(Llm.text("The grouped exploration is complete.")) - yield* driver.llm.queue( - Llm.toolCall({ - index: 0, - id: "call_grep_success", - name: "grep", - input: { pattern: "credits", path: "src" }, - }), - Llm.finish("tool-calls"), - ) - yield* driver.llm.queue(Llm.text("The matching grep search is complete.")) - yield* driver.llm.queue( - Llm.toolCall({ - index: 0, - id: "call_grep_empty", - name: "grep", - input: { pattern: "DEADBEEF", path: "src" }, - }), - Llm.finish("tool-calls"), - ) - yield* driver.llm.queue(Llm.text("The empty grep search is complete.")) - yield* driver.llm.queue( - Llm.toolCall({ index: 0, id: "call_grep_failure", name: "grep", input: { pattern: "[", path: "src" } }), - Llm.finish("tool-calls"), - ) - yield* driver.llm.queue(Llm.text("The invalid grep search is complete.")) - - yield* driver.ui.submit("Find the TypeScript source files.") - yield* driver.ui.waitFor("Permission required", { timeout: 15_000 }) - yield* driver.ui.enter() - yield* driver.ui.waitFor("The first glob search is complete.", { timeout: 15_000 }) - yield* checkpoint(globSuccess) - - yield* driver.ui.submit("Find Rust files that do not exist.") - yield* driver.ui.waitFor("Permission required", { timeout: 15_000 }) - yield* driver.ui.enter() - yield* driver.ui.waitFor("The empty glob search is complete.", { timeout: 15_000 }) - yield* checkpoint(globEmpty) - - yield* driver.ui.submit("Explore TypeScript files and search them for credits together.") - yield* driver.ui.waitFor("Permission required", { timeout: 15_000 }) - yield* driver.ui.enter() - yield* Effect.sleep(500) - yield* driver.ui.waitFor("Permission required", { timeout: 15_000 }) - yield* driver.ui.enter() - yield* driver.ui.waitFor("The grouped exploration is complete.", { timeout: 15_000 }) - yield* checkpoint(groupedExploration) - - yield* driver.ui.submit("Search the source directory for credits.") - yield* driver.ui.waitFor("Permission required", { timeout: 15_000 }) - yield* driver.ui.enter() - yield* driver.ui.waitFor("The matching grep search is complete.", { timeout: 15_000 }) - yield* checkpoint(grepSuccess) - - yield* driver.ui.submit("Search the source directory for DEADBEEF.") - yield* driver.ui.waitFor("Permission required", { timeout: 15_000 }) - yield* driver.ui.enter() - yield* driver.ui.waitFor("The empty grep search is complete.", { timeout: 15_000 }) - yield* checkpoint(grepEmpty) - - yield* driver.ui.submit("Run an invalid regular expression search.") - yield* driver.ui.waitFor("Permission required", { timeout: 15_000 }) - yield* driver.ui.enter() - yield* driver.ui.waitFor("The invalid grep search is complete.", { timeout: 15_000 }) - yield* checkpoint(grepFailure) - }), - ) - }, -) diff --git a/packages/lab/catalog/scenarios/tools/shell-lifecycle.ts b/packages/lab/catalog/scenarios/tools/shell-lifecycle.ts deleted file mode 100644 index 949c87711fd..00000000000 --- a/packages/lab/catalog/scenarios/tools/shell-lifecycle.ts +++ /dev/null @@ -1,127 +0,0 @@ -import { Effect } from "effect" -import * as Llm from "opencode-drive/llm" -import { defineExecutableFlow } from "../../catalog/flow" -import { taxonomies } from "../../catalog/authored/taxonomies" - -export const shellLifecycleFlow = defineExecutableFlow( - taxonomies, - { - id: "shell-lifecycle", - title: "Foreground shell lifecycle", - group: { id: "tool-use", label: "Tool use" }, - description: "Watch thinking and shell input stream before foreground commands succeed and fail.", - }, - ({ state, program }) => { - const thinkingStreaming = state("thinking-streaming", { - screen: { - title: "Thinking streaming", - category: "session", - screenLabels: ["shell-activity"], - uiElements: ["transcript", "status-indicator"], - surfaces: "inline", - patterns: "status", - features: ["thinking", "shell"], - states: "streaming", - }, - step: { title: "Thinking streams" }, - }) - const inputStreaming = state("shell-input-streaming", { - screen: { - title: "Shell input streaming", - category: "session", - screenLabels: ["tool-execution", "shell-activity"], - uiElements: ["transcript", "tool-card", "terminal-output", "status-indicator"], - surfaces: "inline", - patterns: "terminal", - features: ["tool", "shell"], - states: "streaming", - }, - step: { title: "Command input streams" }, - }) - const outputStreaming = state("shell-output-streaming", { - screen: { - title: "Shell output streaming", - category: "session", - screenLabels: ["tool-execution", "shell-activity"], - uiElements: ["transcript", "tool-card", "terminal-output", "status-indicator"], - surfaces: "inline", - patterns: "terminal", - features: ["tool", "shell"], - states: ["running", "streaming"], - }, - step: { title: "Command output streams" }, - }) - const succeeded = state("shell-execute-succeeded", { - screen: { - title: "Shell execution succeeded", - category: "session", - screenLabels: ["tool-execution", "shell-activity"], - uiElements: ["transcript", "tool-card", "terminal-output", "confirmation"], - surfaces: "inline", - patterns: "terminal", - features: ["tool", "shell"], - states: "success", - }, - step: { title: "Command succeeds" }, - }) - const failed = state("shell-execute-failed", { - screen: { - title: "Shell execution failed", - category: "session", - screenLabels: ["tool-execution", "shell-activity", "error-recovery"], - uiElements: ["transcript", "tool-card", "terminal-output", "error-report"], - surfaces: "inline", - patterns: ["terminal", "error-report"], - features: ["tool", "shell"], - states: "error", - }, - step: { title: "Command fails" }, - }) - - return program([thinkingStreaming, inputStreaming, outputStreaming, succeeded, failed], ({ driver, checkpoint }) => - Effect.gen(function* () { - yield* driver.llm.queue( - Llm.reasoning("I will inspect the foreground shell lifecycle before running the command.", { - delay: 70, - chunkSize: 7, - }), - Llm.toolCall( - { - index: 0, - id: "call_catalog_shell_success", - name: "shell", - input: { command: "printf catalog-shell-success" }, - }, - { delay: 90, chunkSize: 5 }, - ), - Llm.finish("tool-calls"), - ) - yield* driver.llm.queue(Llm.text("The successful shell command completed.")) - - yield* driver.ui.submit("Run one successful foreground shell command.") - yield* Effect.sleep(250) - yield* checkpoint(thinkingStreaming) - yield* driver.ui.waitFor("Writing command...", { timeout: 15_000 }) - yield* checkpoint(inputStreaming) - yield* driver.ui.waitFor("printf catalog-shell-success", { timeout: 15_000 }) - yield* checkpoint(outputStreaming) - yield* driver.ui.waitFor("The successful shell command completed.", { timeout: 15_000 }) - yield* checkpoint(succeeded) - - yield* driver.llm.queue( - Llm.toolCall({ - index: 0, - id: "call_catalog_shell_failure", - name: "shell", - input: { command: "catalog-shell-fail" }, - }), - Llm.finish("tool-calls"), - ) - yield* driver.llm.queue(Llm.text("The shell lifecycle is complete.")) - yield* driver.ui.submit("Now run one failing foreground shell command.") - yield* driver.ui.waitFor("The shell lifecycle is complete.", { timeout: 15_000 }) - yield* checkpoint(failed) - }), - ) - }, -) diff --git a/packages/lab/catalog/scenarios/tools/web-lifecycle.ts b/packages/lab/catalog/scenarios/tools/web-lifecycle.ts deleted file mode 100644 index 0b44b40087e..00000000000 --- a/packages/lab/catalog/scenarios/tools/web-lifecycle.ts +++ /dev/null @@ -1,112 +0,0 @@ -import { Effect } from "effect" -import * as Llm from "opencode-drive/llm" -import { defineExecutableFlow } from "../../catalog/flow" -import { taxonomies } from "../../catalog/authored/taxonomies" - -export const webLifecycleFlow = defineExecutableFlow( - taxonomies, - { - id: "web-lifecycle", - title: "Web tool lifecycle", - group: { id: "tool-use", label: "Tool use" }, - description: "Run the v2 WebFetch and WebSearch renderers with real tool calls.", - }, - ({ state, program }) => { - const webfetchStreaming = state("webfetch-streaming", { - screen: { - title: "WebFetch streaming", - category: "session", - screenLabels: ["tool-execution"], - uiElements: ["transcript", "tool-card", "status-indicator"], - surfaces: "inline", - patterns: "status", - features: ["tool", "web"], - states: "streaming", - }, - step: { title: "WebFetch input streams" }, - }) - const webfetchSuccess = state("webfetch-success", { - screen: { - title: "WebFetch succeeds", - category: "session", - screenLabels: ["tool-execution"], - uiElements: ["transcript", "tool-card", "confirmation"], - surfaces: "inline", - patterns: "status", - features: ["tool", "web"], - states: "success", - }, - step: { title: "WebFetch succeeds" }, - }) - const websearchRunning = state("websearch-running", { - screen: { - title: "WebSearch running", - category: "session", - screenLabels: ["tool-execution"], - uiElements: ["transcript", "tool-card", "status-indicator"], - surfaces: "inline", - patterns: "status", - features: ["tool", "web", "search"], - states: "running", - }, - step: { title: "WebSearch runs" }, - }) - const websearchFailure = state("websearch-failure", { - screen: { - title: "WebSearch fails", - category: "session", - screenLabels: ["tool-execution", "error-recovery"], - uiElements: ["transcript", "tool-card", "error-report"], - surfaces: "inline", - patterns: "error-report", - features: ["tool", "web", "search"], - states: "error", - }, - step: { title: "WebSearch reports provider failure" }, - }) - - return program([webfetchStreaming, webfetchSuccess, websearchRunning, websearchFailure], ({ driver, checkpoint }) => - Effect.gen(function* () { - yield* driver.llm.queue( - Llm.toolCall( - { - index: 0, - id: "call_webfetch_success", - name: "webfetch", - input: { url: "https://example.com", format: "text" }, - }, - { delay: 300, chunkSize: 1 }, - ), - Llm.finish("tool-calls"), - ) - yield* driver.llm.queue(Llm.text("The web fetch is complete.")) - yield* driver.llm.queue( - Llm.toolCall( - { - index: 0, - id: "call_websearch_failure", - name: "websearch", - input: { query: "opencode terminal interface", numResults: 3 }, - }, - { delay: 300, chunkSize: 1 }, - ), - Llm.finish("tool-calls"), - ) - - yield* driver.ui.submit("Fetch the Example Domain.") - yield* driver.ui.waitFor("Fetching from the web...", { timeout: 30_000 }) - yield* checkpoint(webfetchStreaming) - yield* driver.ui.waitFor("Permission required", { timeout: 15_000 }) - yield* driver.ui.enter() - yield* driver.ui.waitFor("The web fetch is complete.", { timeout: 30_000 }) - yield* checkpoint(webfetchSuccess) - - yield* driver.ui.submit("Search the web for the OpenCode terminal interface.") - yield* driver.ui.waitFor("Searching web...", { timeout: 30_000 }) - yield* checkpoint(websearchRunning) - yield* Effect.sleep(1_000) - yield* checkpoint(websearchFailure) - }), - ) - }, -) diff --git a/packages/lab/catalog/scripts/bench-capture-flow.ts b/packages/lab/catalog/scripts/bench-capture-flow.ts deleted file mode 100644 index e0d81257d4f..00000000000 --- a/packages/lab/catalog/scripts/bench-capture-flow.ts +++ /dev/null @@ -1,51 +0,0 @@ -const flow = process.argv[2] ?? "search-lifecycle" -const revision = process.argv[3] ?? "HEAD" -const opencode = process.argv[4] ?? new URL("../../../../", import.meta.url).pathname -const runs = 8 -const measured: Array<{ prepare: number; total: number }> = [] - -for (let index = 0; index < runs; index++) { - const child = Bun.spawn( - [ - process.execPath, - "./scripts/capture-opencode-drive.ts", - "--opencode", - opencode, - "--revision", - revision, - "--flow", - flow, - ], - { cwd: import.meta.dir + "/..", stdout: "pipe", stderr: "pipe" }, - ) - const [stdout, stderr, exit] = await Promise.all([ - new Response(child.stdout).text(), - new Response(child.stderr).text(), - child.exited, - ]) - if (exit !== 0) throw new Error(`Capture benchmark failed:\n${stdout}\n${stderr}`) - const prepare = metric(stdout, "capture_prepare_ms") - const total = metric(stdout, "capture_total_ms") - console.log(`${index === 0 ? "warmup" : `run ${index}`}: prepare=${prepare}ms total=${total}ms`) - if (index > 0) measured.push({ prepare, total }) -} - -const prepare = measured.map((run) => run.prepare) -const total = measured.map((run) => run.total) -console.log(`METRIC capture_flow_prepare_median_ms=${median(prepare)}`) -console.log(`METRIC capture_flow_total_median_ms=${median(total)}`) -console.log(`METRIC capture_flow_total_mad_ms=${median(total.map((value) => Math.abs(value - median(total))))}`) -console.log(`METRIC capture_flow_total_best_ms=${Math.min(...total)}`) -console.log(`METRIC capture_flow_total_worst_ms=${Math.max(...total)}`) - -function metric(output: string, name: string) { - const match = output.match(new RegExp(`^METRIC ${name}=(\\d+)$`, "m")) - if (!match?.[1]) throw new Error(`Missing ${name} in capture output`) - return Number(match[1]) -} - -function median(values: ReadonlyArray) { - const sorted = [...values].sort((left, right) => left - right) - const middle = Math.floor(sorted.length / 2) - return sorted.length % 2 === 0 ? Math.round((sorted[middle - 1]! + sorted[middle]!) / 2) : sorted[middle]! -} diff --git a/packages/lab/catalog/scripts/bench-capture-matrix.ts b/packages/lab/catalog/scripts/bench-capture-matrix.ts deleted file mode 100644 index acec51cf5b0..00000000000 --- a/packages/lab/catalog/scripts/bench-capture-matrix.ts +++ /dev/null @@ -1,25 +0,0 @@ -const revision = process.argv[2] ?? "HEAD" -const opencode = process.argv[3] ?? new URL("../../../../", import.meta.url).pathname -const startedAt = performance.now() -const child = Bun.spawn( - [ - process.execPath, - "./scripts/capture-opencode-drive.ts", - "--opencode", - opencode, - "--revision", - revision, - "--theme", - "opencode", - "--theme", - "tokyonight", - "--theme", - "everforest", - "--jobs", - "3", - ], - { cwd: import.meta.dir + "/..", stdout: "inherit", stderr: "inherit" }, -) - -if ((await child.exited) !== 0) throw new Error("Capture matrix benchmark failed") -console.log(`METRIC capture_matrix_total_ms=${Math.round(performance.now() - startedAt)}`) diff --git a/packages/lab/catalog/scripts/capture-opencode-drive.ts b/packages/lab/catalog/scripts/capture-opencode-drive.ts deleted file mode 100644 index 160e85356d8..00000000000 --- a/packages/lab/catalog/scripts/capture-opencode-drive.ts +++ /dev/null @@ -1,525 +0,0 @@ -import { mkdir, rename, rm } from "node:fs/promises" -import { dirname, join } from "node:path" -import { fileURLToPath } from "node:url" -import { Effect } from "effect" -import { Llm, OpenCodeDriver } from "opencode-drive" -import { screens, type CaptureId } from "../catalog/authored/screens" -import type { ScreenCategory } from "../catalog/dsl" -import { executeFlow, type ExecutableScenario } from "../catalog/flow" -import { patchSuccessFlow } from "../scenarios/tools/patch-success" -import { executableScenarios } from "../scenarios" -import { catalogScenarioRuntime, catalogViewport } from "../scenarios/runtime" -import type { Variant as CaptureSet } from "../catalog/schema" -import { - captureSetId, - captureSetLabel, - captureMatrixManifest, - captureSource, - parseCaptureOptions, -} from "./capture-sets" - -type Capture = { - readonly id: CaptureId - readonly title: string - readonly category: ScreenCategory - readonly frame: { - readonly variantId: string - readonly src: string - readonly cols: number - readonly rows: number - } -} - -type Variant = { - readonly id: string - readonly label: string - readonly source: string - readonly revision: string - readonly ref: string - readonly committedAt: string - readonly path: string - readonly theme?: string -} - -const defaultOpenCode = fileURLToPath(new URL("../../../../", import.meta.url)) -const options = parseCaptureOptions(process.argv.slice(2), defaultOpenCode) -const processStartedAt = performance.now() -const stagingRoot = fileURLToPath(new URL(`../.tmp/capture-staging/${crypto.randomUUID()}/`, import.meta.url)) -const prepared = await prepareCaptureSets(options) -metric("capture_prepare_ms", processStartedAt) -const variants = prepared.variants -let captureSucceeded = false -const lifecycleScenarios = executableScenarios.filter((scenario) => scenario.id !== patchSuccessFlow.id) - -const captureVariant = (variant: Variant) => - Effect.gen(function* () { - if (options.flow !== undefined) { - const selected = executableScenarios.find((scenario) => scenario.id === options.flow) - if (!selected) { - const known = executableScenarios.map((scenario) => scenario.id).join(", ") - return yield* Effect.fail( - new Error(`Unknown executable flow ${JSON.stringify(options.flow)}. Known flows: ${known}`), - ) - } - return yield* captureScenarioProcess(variant, [selected], true) - } - - const queued = lifecycleScenarios.filter((scenario) => scenario.llmMode === "queue") - const served = lifecycleScenarios.filter((scenario) => scenario.llmMode === "serve") - const captures = yield* captureScenarioProcess(variant, [], false, true) - for (const scenario of queued) { - captures.push(...(yield* captureScenarioProcess(variant, [scenario]))) - } - for (const scenario of served) { - captures.push(...(yield* captureScenarioProcess(variant, [scenario]))) - } - return captures - }) - -function captureScenarioProcess( - variant: Variant, - scenarios: ReadonlyArray, - preview = false, - baseline = false, -) { - return OpenCodeDriver.use(catalogScenarioRuntime({ opencode: variant.path, theme: variant.theme }), (driver) => - Effect.gen(function* () { - const captures = baseline ? [...(yield* captureBaseline(driver, variant))] : [] - const shared = scenarios.filter((scenario) => scenario.clientIsolation === "shared") - if (shared.length > 0) { - captures.push(...(yield* captureScenarioClient(driver, variant, shared, preview))) - } - for (const scenario of scenarios.filter((candidate) => candidate.clientIsolation === "isolated")) { - captures.push(...(yield* captureScenarioClient(driver, variant, [scenario], preview))) - } - return captures - }), - ) -} - -function captureScenarioClient( - driver: OpenCodeDriver.Driver, - variant: Variant, - scenarios: ReadonlyArray, - preview: boolean, -) { - const clientName = `catalog-${scenarios[0]?.id ?? "empty"}-${scenarios.length}` - return Effect.acquireUseRelease( - driver.tuis.launch(clientName, { viewport: catalogViewport }), - (client) => - Effect.gen(function* () { - const captures: Array = [] - for (const scenario of scenarios) { - yield* openNewSession(client.ui) - yield* resetProjectFiles(driver) - const startedAt = performance.now() - console.error(`Capturing ${scenario.id}`) - captures.push(...(yield* captureScenario({ ...driver, ui: client.ui }, variant, scenario, preview))) - metric(`capture_scenario_${scenario.id}_ms`, startedAt) - } - return captures - }), - (client) => client.close(), - ) -} - -const openNewSession = Effect.fn("Catalog.openNewSession")(function* (ui: OpenCodeDriver.Driver["ui"]) { - yield* ui.press("p", { ctrl: true }) - yield* ui.waitFor("Commands", { timeout: 15_000 }) - yield* ui.type("New session") - yield* ui.waitFor("New session", { timeout: 15_000 }) - yield* ui.enter() - yield* ui.waitFor("Ask anything...", { timeout: 15_000 }) -}) - -const captureBaseline = (driver: OpenCodeDriver.Driver, variant: Variant) => - Effect.gen(function* () { - const captures: Capture[] = [] - const outputDirectory = join(stagingRoot, variant.id) - yield* Effect.promise(() => mkdir(outputDirectory, { recursive: true })) - - const capture = Effect.fn("Catalog.capture")(function* (id: CaptureId) { - const screen = screens[id] - const frame = yield* driver.ui.capture() - const src = `captures/${variant.id}/${id}.frame.json` - yield* Effect.promise(() => - Bun.write( - join(outputDirectory, `${id}.frame.json`), - `${JSON.stringify({ format: "opencode-terminal-frame-v1", ...frame })}\n`, - ), - ) - captures.push({ - id, - title: screen.title, - category: screen.category, - frame: { variantId: variant.id, src, cols: frame.cols, rows: frame.rows }, - }) - }) - - const close = Effect.fn("Catalog.closeDialog")(function* () { - yield* driver.ui.press("\u001b") - yield* Effect.sleep(150) - }) - - const openSlash = Effect.fn("Catalog.openSlash")(function* (slash: string, marker: string) { - yield* driver.ui.submit(slash) - yield* driver.ui.waitFor(marker) - }) - - yield* driver.ui.waitFor((state) => state.elements.length > 0) - yield* Effect.sleep(400) - yield* capture("home") - - yield* driver.ui.press("p", { ctrl: true }) - yield* driver.ui.waitFor("Commands") - yield* capture("command-palette") - yield* close() - - const dialogs = [ - ["/models", "Select model", "model-picker"], - ["/agents", "Select agent", "agent-picker"], - ["/connect", "Connect an integration", "integration-picker"], - ["/themes", "Themes", "theme-picker"], - ["/mcps", "MCP servers", "mcp-list"], - ["/status", "No MCP servers", "status"], - ["/debug", "Debug", "debug"], - ["/help", "Press ctrl+p", "help"], - ["/pair", "Pair", "pair"], - ["/sessions", "Sessions", "session-picker"], - ["/skills", "Skills", "skill-picker"], - ] as const - - for (const [slash, marker, id] of dialogs) { - yield* openSlash(slash, marker) - yield* capture(id) - yield* close() - } - - yield* executeFlow(patchSuccessFlow, { - driver, - capture: (state) => capture(state.id), - }) - - const sessionDialogs = [ - ["/rename", "Rename session", "session-rename"], - ["/fork", "Full session", "session-fork"], - ["/export", "Export as", "session-export"], - ] as const - - for (const [slash, marker, id] of sessionDialogs) { - yield* openSlash(slash, marker) - yield* capture(id) - yield* close() - } - - yield* driver.llm.queue( - Llm.toolCall({ - index: 0, - id: "call_question_capture", - name: "question", - input: { - questions: [ - { - question: "Which direction should the fixture take?", - header: "Fixture", - options: [ - { - label: "Keep it minimal (Recommended)", - description: "Small deterministic fixture", - }, - { - label: "Expand coverage", - description: "Add more scripted states", - }, - ], - }, - ], - }, - }), - Llm.finish("tool-calls"), - ) - yield* driver.llm.queue(Llm.text("Keeping the fixture minimal.")) - yield* driver.ui.submit("Ask me about the fixture direction.") - yield* driver.ui.waitFor("Permission required", { timeout: 15_000 }) - yield* driver.ui.enter() - yield* driver.ui.waitFor("Which direction should the fixture take?", { timeout: 15_000 }) - yield* capture("question-prompt") - yield* driver.ui.enter() - yield* driver.ui.waitFor("Keeping the fixture minimal.", { timeout: 15_000 }) - - yield* openSlash("/rename", "Rename session") - yield* driver.ui.type("Catalog capture session") - yield* driver.ui.enter() - yield* Effect.sleep(300) - - yield* openSlash("/sessions", "Sessions") - yield* driver.ui.waitFor("Catalog capture session") - yield* capture("session-picker-populated") - yield* close() - - yield* driver.ui.type("/copy") - yield* driver.ui.waitFor("Copy session transcript") - yield* driver.ui.enter() - yield* Effect.sleep(600) - yield* capture("toast-success") - yield* Effect.sleep(200) - - yield* driver.ui.submit("/share") - yield* driver.ui.waitFor("Sharing is not implemented for V2 sessions yet") - yield* capture("toast-error") - - yield* openSlash("/debug", "Debug") - yield* driver.ui.enter() - yield* driver.ui.waitFor("Debug info copied to clipboard") - yield* capture("toast-info") - yield* close() - - yield* openSlash("/diff", "Diff working tree") - yield* driver.ui.waitFor("No changes to show") - yield* capture("diff-viewer") - yield* close() - - return captures - }) - -function captureScenario( - driver: OpenCodeDriver.Driver, - variant: Variant, - scenario: ExecutableScenario, - preview = false, -) { - return Effect.gen(function* () { - const captures: Array = [] - yield* scenario.run({ - driver, - capture: (state) => - Effect.gen(function* () { - if (!isCaptureId(state.id)) { - return yield* Effect.fail(new Error(`Scenario ${scenario.id} references unknown screen ${state.id}`)) - } - const id = state.id - const screen = screens[id] - const frame = yield* driver.ui.capture() - const src = preview - ? `.tmp/capture-runs/${variant.id}/${id}.frame.json` - : `captures/${variant.id}/${id}.frame.json` - const output = preview - ? fileURLToPath(new URL(`../${src}`, import.meta.url)) - : join(stagingRoot, variant.id, `${id}.frame.json`) - yield* Effect.promise(async () => { - await mkdir(dirname(output), { recursive: true }) - await Bun.write(output, `${JSON.stringify({ format: "opencode-terminal-frame-v1", ...frame })}\n`) - }) - captures.push({ - id, - title: screen.title, - category: screen.category, - frame: { variantId: variant.id, src, cols: frame.cols, rows: frame.rows }, - }) - }), - }) - return captures - }) -} - -const resetProjectFiles = Effect.fn("Catalog.resetProjectFiles")(function* (driver: OpenCodeDriver.Driver) { - const files = join(driver.artifacts, "files") - yield* Effect.promise(() => - Promise.all([Bun.write(join(files, "fixture.txt"), "before\n"), rm(join(files, "patched.txt"), { force: true })]), - ) -}) - -function isCaptureId(value: string): value is CaptureId { - return value in screens -} - -try { - const captured = - options.workerOutput === undefined && variants.length > 1 && options.jobs > 1 - ? await captureVariantProcesses(options, variants) - : await Effect.runPromise(Effect.forEach(variants, captureVariant, { concurrency: 1 })) - const expectedIds = captured[0]?.map((capture) => capture.id) ?? [] - for (const [index, variantCaptures] of captured.entries()) { - const actualIds = variantCaptures.map((capture) => capture.id) - if (JSON.stringify(actualIds) !== JSON.stringify(expectedIds)) { - throw new Error(`Variant ${variants[index]?.id ?? index} captured a different ordered screen set`) - } - } - const captures = - captured[0]?.map((first) => ({ - id: first.id, - title: first.title, - category: first.category, - frames: captured.flatMap((variantCaptures) => - variantCaptures.filter((capture) => capture.id === first.id).map((capture) => capture.frame), - ) as [Capture["frame"], ...Array], - })) ?? [] - if (options.flow !== undefined) { - for (const capture of captures) { - for (const frame of capture.frames) console.log(frame.src) - } - } else if (options.workerOutput !== undefined) { - const [variant] = variants - if (!variant) throw new Error("Capture worker requires one variant") - const target = join(options.workerOutput, variant.id) - await rm(target, { recursive: true, force: true }) - await mkdir(options.workerOutput, { recursive: true }) - await rename(join(stagingRoot, variant.id), target) - await Bun.write( - join(options.workerOutput, `${variant.id}.json`), - `${JSON.stringify({ variant: (({ path: _, ...value }) => value)(variant), captures: captured[0] ?? [] })}\n`, - ) - } else { - for (const variant of variants) { - const target = fileURLToPath(new URL(`../public/captures/${variant.id}/`, import.meta.url)) - await rm(target, { recursive: true, force: true }) - await mkdir(dirname(target), { recursive: true }) - await rename(join(stagingRoot, variant.id), target) - } - const manifestFile = new URL("../public/drive-captures.json", import.meta.url) - const captureSets = variants.map(({ path: _, ...variant }) => variant satisfies CaptureSet) - const manifest = captureMatrixManifest(captureSets, captures) - await Bun.write(manifestFile, `${JSON.stringify(manifest, undefined, 2)}\n`) - } - captureSucceeded = true -} finally { - metric("capture_total_ms", processStartedAt) - if (captureSucceeded) await rm(stagingRoot, { recursive: true, force: true }) - else console.error(`Retained staged capture frames: ${stagingRoot}`) - await prepared.cleanup(captureSucceeded) -} - -async function captureVariantProcesses( - captureOptions: ReturnType, - planned: ReadonlyArray, -): Promise>> { - const output = fileURLToPath(new URL(`../.tmp/capture-workers/${crypto.randomUUID()}/`, import.meta.url)) - await mkdir(output, { recursive: true }) - let next = 0 - const results = Array.from | undefined>({ length: planned.length }) - - await Promise.all( - Array.from({ length: Math.min(captureOptions.jobs, planned.length) }, async () => { - while (true) { - const index = next++ - const variant = planned[index] - if (!variant) return - const args = [ - process.execPath, - fileURLToPath(import.meta.url), - "--opencode", - captureOptions.opencode, - "--revision", - variant.revision, - "--theme", - variant.theme ?? "default", - "--jobs", - "1", - "--worker-output", - output, - ] - const child = Bun.spawn(args, { - cwd: fileURLToPath(new URL("..", import.meta.url)), - stdout: "inherit", - stderr: "inherit", - }) - if ((await child.exited) !== 0) throw new Error(`Capture worker ${variant.id} failed`) - const result = (await Bun.file(join(output, `${variant.id}.json`)).json()) as { captures: Array } - results[index] = result.captures - } - }), - ) - - for (const variant of planned) { - const target = join(stagingRoot, variant.id) - await mkdir(dirname(target), { recursive: true }) - await rename(join(output, variant.id), target) - } - await rm(output, { recursive: true, force: true }) - return results.map((result, index) => { - if (!result) throw new Error(`Capture worker ${planned[index]?.id ?? index} produced no result`) - return result - }) -} - -async function prepareCaptureSets(options: ReturnType) { - const worktrees: Array = [] - const variants: Array = [] - const revisions = new Map() - - try { - for (const ref of options.revisions) { - const revision = await git(options.opencode, "rev-parse", `${ref}^{commit}`) - if (revisions.has(revision)) continue - const committedAt = await git(options.opencode, "show", "-s", "--format=%cI", revision) - if (ref === "HEAD") { - revisions.set(revision, { ref, committedAt, path: options.opencode }) - continue - } - const path = fileURLToPath(new URL(`../.tmp/capture-worktrees/${revision}/`, import.meta.url)) - const preparedRevision = await preparedWorktreeRevision(path) - if (options.fresh && preparedRevision !== undefined) { - await command(["git", "worktree", "remove", "--force", path], options.opencode).catch(() => - rm(path, { recursive: true, force: true }), - ) - } - if (options.fresh || preparedRevision !== revision) { - if (preparedRevision !== undefined) { - await command(["git", "worktree", "remove", "--force", path], options.opencode).catch(() => - rm(path, { recursive: true, force: true }), - ) - } - await mkdir(dirname(path), { recursive: true }) - await command(["git", "worktree", "add", "--detach", path, revision], options.opencode) - // Bun can reuse another Git worktree's install state without creating local links. - await command(["bun", "install", "--frozen-lockfile", "--force"], path) - } - worktrees.push(path) - revisions.set(revision, { ref, committedAt, path }) - } - - for (const [revision, preparedRevision] of revisions) { - for (const theme of options.themes) { - variants.push({ - id: captureSetId(revision, theme, revisions.size > 1), - label: captureSetLabel(revision, theme), - source: captureSource(options.opencode), - revision, - ref: preparedRevision.ref, - committedAt: preparedRevision.committedAt, - path: preparedRevision.path, - ...(theme === undefined ? {} : { theme }), - }) - } - } - } catch (error) { - await cleanup() - throw error - } - - return { variants, cleanup } - - async function cleanup(_succeeded = false) { - for (const path of worktrees) console.error(`Prepared capture worktree: ${path}`) - } -} - -async function preparedWorktreeRevision(path: string) { - if (!(await Bun.file(join(path, ".git")).exists())) return undefined - return git(path, "rev-parse", "HEAD").catch(() => undefined) -} - -function metric(name: string, startedAt: number) { - console.log(`METRIC ${name}=${Math.round(performance.now() - startedAt)}`) -} - -async function git(cwd: string, ...args: ReadonlyArray): Promise { - return (await command(["git", ...args], cwd)).trim() -} - -async function command(argv: ReadonlyArray, cwd: string): Promise { - const process = Bun.spawn([...argv], { cwd, stdout: "pipe", stderr: "inherit" }) - const output = await new Response(process.stdout).text() - if ((await process.exited) !== 0) throw new Error(`${argv.join(" ")} failed`) - return output -} diff --git a/packages/lab/catalog/scripts/capture-sets.ts b/packages/lab/catalog/scripts/capture-sets.ts deleted file mode 100644 index 5bc848434da..00000000000 --- a/packages/lab/catalog/scripts/capture-sets.ts +++ /dev/null @@ -1,90 +0,0 @@ -import { basename, resolve } from "node:path" -import type { DriveCapture, DriveManifest, Variant } from "../catalog/schema" - -export interface CaptureOptions { - readonly opencode: string - readonly revisions: ReadonlyArray - readonly themes: ReadonlyArray - readonly flow: string | undefined - readonly fresh: boolean - readonly jobs: number - readonly workerOutput: string | undefined -} - -export function parseCaptureOptions(args: ReadonlyArray, defaultOpenCode: string): CaptureOptions { - let opencode = defaultOpenCode - const revisions: Array = [] - const themes: Array = [] - let flow: string | undefined - let fresh = false - let jobs = 3 - let workerOutput: string | undefined - - for (let index = 0; index < args.length; index++) { - const argument = args[index] - if (argument === "--fresh") { - fresh = true - continue - } - const value = args[++index] - if (!value) throw new Error(`${argument} requires a value`) - if (argument === "--opencode") opencode = value - else if (argument === "--revision") revisions.push(value) - else if (argument === "--theme") themes.push(value === "default" ? undefined : value) - else if (argument === "--flow") flow = value - else if (argument === "--jobs") jobs = Number(value) - else if (argument === "--worker-output") workerOutput = resolve(value) - else throw new Error(`Unknown capture argument: ${argument}`) - } - - if (!Number.isInteger(jobs) || jobs < 1) throw new Error("--jobs must be a positive integer") - - return { - opencode: resolve(opencode), - revisions: revisions.length === 0 ? ["origin/v2"] : revisions, - themes: themes.length === 0 ? [undefined] : themes, - flow, - fresh, - jobs, - workerOutput, - } -} - -export function captureSetId(revision: string, theme: string | undefined, includeRevision = false): string { - const revisionId = revision.slice(0, 12).toLowerCase() - if (theme === undefined) return revisionId - return includeRevision ? `${revisionId}-${slug(theme)}` : slug(theme) -} - -export function captureSetLabel(revision: string, theme: string | undefined): string { - if (theme === undefined) return revision.slice(0, 7) - if (theme === "opencode") return "Opencode" - if (theme === "tokyonight") return "Tokyo Night" - if (theme === "everforest") return "Everforest" - return theme -} - -export function captureMatrixManifest( - variants: ReadonlyArray, - captures: ReadonlyArray, -): DriveManifest { - return { - format: "opencode-terminal-frame-captures-v1", - generatedBy: "scripts/capture-opencode-drive.ts", - variants: variants as [Variant, ...Array], - captures, - } -} - -export function captureSource(path: string): string { - return basename(resolve(path)) -} - -function slug(value: string): string { - const result = value - .toLowerCase() - .replace(/[^a-z0-9]+/g, "-") - .replace(/^-|-$/g, "") - if (result === "") throw new Error(`Theme ${JSON.stringify(value)} cannot form a set ID`) - return result -} diff --git a/packages/lab/catalog/scripts/generate-catalog.ts b/packages/lab/catalog/scripts/generate-catalog.ts deleted file mode 100644 index 294fcd82470..00000000000 --- a/packages/lab/catalog/scripts/generate-catalog.ts +++ /dev/null @@ -1,73 +0,0 @@ -import { Effect, Schema } from "effect" -import { compileCatalog } from "../catalog/authoring" -import { definition } from "../catalog/authored" -import { CatalogBoundaryError, DriveManifest, FrameArtifact, type Frame } from "../catalog/schema" - -const manifestFile = new URL("../public/drive-captures.json", import.meta.url) -const catalogFile = new URL("../public/catalog.json", import.meta.url) - -const readManifest = Effect.fn("Catalog.readManifest")(function* () { - const json = yield* Effect.tryPromise({ - try: () => Bun.file(manifestFile).text(), - catch: (cause) => new CatalogBoundaryError({ boundary: "drive-captures.json", cause }), - }) - return yield* Schema.decodeUnknownEffect(Schema.fromJsonString(DriveManifest), { - errors: "all", - onExcessProperty: "error", - })(json).pipe(Effect.mapError((cause) => new CatalogBoundaryError({ boundary: "drive-captures.json", cause }))) -}) - -const validateCapture = Effect.fn("Catalog.validateCapture")(function* (frame: Frame) { - const json = yield* Effect.tryPromise({ - try: async () => { - const file = Bun.file(new URL(`../public/${frame.src}`, import.meta.url)) - if (!(await file.exists())) throw new Error(`Missing terminal frame ${frame.src}`) - return file.text() - }, - catch: (cause) => new CatalogBoundaryError({ boundary: frame.src, cause }), - }) - const artifact = yield* Schema.decodeUnknownEffect(Schema.fromJsonString(FrameArtifact), { - errors: "all", - onExcessProperty: "error", - })(json).pipe(Effect.mapError((cause) => new CatalogBoundaryError({ boundary: frame.src, cause }))) - if (artifact.cols !== frame.cols || artifact.rows !== frame.rows) { - return yield* new CatalogBoundaryError({ - boundary: frame.src, - cause: new Error(`Terminal frame is ${artifact.cols}x${artifact.rows}; expected ${frame.cols}x${frame.rows}`), - }) - } - if (artifact.lines.length !== artifact.rows) { - return yield* new CatalogBoundaryError({ - boundary: frame.src, - cause: new Error(`Terminal frame has ${artifact.lines.length} lines; expected ${artifact.rows}`), - }) - } - for (const [row, line] of artifact.lines.entries()) { - const width = line.spans.reduce((total, span) => total + span.width, 0) - if (width !== artifact.cols) { - return yield* new CatalogBoundaryError({ - boundary: frame.src, - cause: new Error(`Terminal frame row ${row} is ${width} cells wide; expected ${artifact.cols}`), - }) - } - } -}) - -const program = Effect.gen(function* () { - const manifest = yield* readManifest() - yield* Effect.forEach( - manifest.captures.flatMap((capture) => capture.frames), - validateCapture, - { - concurrency: "unbounded", - discard: true, - }, - ) - const catalog = yield* compileCatalog(definition, manifest) - yield* Effect.tryPromise({ - try: () => Bun.write(catalogFile, `${JSON.stringify(catalog, undefined, 2)}\n`), - catch: (cause) => new CatalogBoundaryError({ boundary: "catalog.json", cause }), - }) -}) - -await Effect.runPromise(program) diff --git a/packages/lab/catalog/scripts/generate-og.ts b/packages/lab/catalog/scripts/generate-og.ts deleted file mode 100644 index b6cbde20115..00000000000 --- a/packages/lab/catalog/scripts/generate-og.ts +++ /dev/null @@ -1,209 +0,0 @@ -/** - * Generates Open Graph cards for the catalog: one 1200x630 PNG per captured - * screen/theme pair plus a default card, written to dist/og. Runs after the - * production build so the images deploy as plain static assets. - */ -import { fileURLToPath } from "node:url" -import { GlobalFonts, createCanvas } from "@napi-rs/canvas" -import type { SKRSContext2D, Canvas } from "@napi-rs/canvas" -import { - CellHeight, - CellWidth, - DimAlpha, - FontSize, - StrikethroughOffset, - TextStyle, - UnderlineOffset, - baselineOffset, - drawBlockGlyph, -} from "opencode-drive/frame" - -const CardWidth = 1200 -const CardHeight = 630 -const Pad = 56 - -const FontStack = `"OpenCode Mono", "OpenCode Symbols", "OpenCode Symbols 2", "OpenCode Math"` - -const driveRoot = new URL("../../", Bun.pathToFileURL(Bun.resolveSync("opencode-drive/frame", import.meta.dir)).href) -for (const [file, family] of [ - ["commit-mono/CommitMono-400-Regular.otf", "OpenCode Mono"], - ["commit-mono/CommitMono-700-Regular.otf", "OpenCode Mono"], - ["commit-mono/CommitMono-400-Italic.otf", "OpenCode Mono"], - ["commit-mono/CommitMono-700-Italic.otf", "OpenCode Mono"], - ["noto/NotoSansSymbols.ttf", "OpenCode Symbols"], - ["noto/NotoSansSymbols2-Regular.ttf", "OpenCode Symbols 2"], - ["noto/NotoSansMath-Regular.ttf", "OpenCode Math"], -] as const) { - const path = fileURLToPath(new URL(`assets/fonts/${file}`, driveRoot)) - if (!GlobalFonts.registerFromPath(path, family)) throw new Error(`Failed to register OG font: ${path}`) -} - -interface FrameSpan { - readonly text: string - readonly fg: readonly [number, number, number, number] - readonly bg: readonly [number, number, number, number] - readonly attributes: number - readonly width: number -} - -interface FrameArtifact { - readonly cols: number - readonly rows: number - readonly lines: ReadonlyArray<{ readonly spans: ReadonlyArray }> -} - -function color([red, green, blue, alpha]: FrameSpan["fg"], opacity = 1) { - return `rgba(${red}, ${green}, ${blue}, ${(alpha / 255) * opacity})` -} - -/** Mirrors the browser canvas renderer in src/components/TerminalFrame.tsx. */ -function renderFrame(frame: FrameArtifact) { - const canvas = createCanvas(frame.cols * CellWidth, frame.rows * CellHeight) - const context = canvas.getContext("2d") - context.fillStyle = "#080808" - context.fillRect(0, 0, canvas.width, canvas.height) - context.textBaseline = "alphabetic" - context.textAlign = "center" - - frame.lines.forEach((line, row) => { - let column = 0 - line.spans.forEach((span) => { - const attributes = span.attributes & 0xff - const inverse = Boolean(attributes & TextStyle.inverse) - const hidden = Boolean(attributes & TextStyle.invisible) - const foreground = inverse ? span.bg : span.fg - const background = inverse ? span.fg : span.bg - const chars = [...span.text] - let remaining = span.width - - chars.forEach((char, index) => { - const cells = Math.max(1, remaining - (chars.length - index - 1)) - const x = column * CellWidth - const y = row * CellHeight - if (background[3]) { - context.fillStyle = color(background) - context.fillRect(x, y, cells * CellWidth, CellHeight) - } - if (!hidden && char.codePointAt(0) !== 0x0a00) { - context.fillStyle = color(foreground, attributes & TextStyle.dim ? DimAlpha : 1) - if (!drawBlockGlyph(context, char, x, y, cells)) { - const font = `${attributes & TextStyle.italic ? "italic " : ""}${attributes & TextStyle.bold ? "700 " : "400 "}${FontSize}px ${FontStack}` - context.font = font - context.fillText(char, x + (cells * CellWidth) / 2, y + baselineOffset(context, font), cells * CellWidth) - } - if (attributes & TextStyle.underline) context.fillRect(x, y + UnderlineOffset, cells * CellWidth, 1) - if (attributes & TextStyle.strikethrough) context.fillRect(x, y + StrikethroughOffset, cells * CellWidth, 1) - } - column += cells - remaining -= cells - }) - while (remaining-- > 0) { - if (background[3]) { - context.fillStyle = color(background) - context.fillRect(column * CellWidth, row * CellHeight, CellWidth, CellHeight) - } - column++ - } - }) - }) - return canvas -} - -function drawChrome(context: SKRSContext2D, kicker: string, title: string, chip: string) { - context.fillStyle = "#0a0a0a" - context.fillRect(0, 0, CardWidth, CardHeight) - - context.textAlign = "left" - context.textBaseline = "alphabetic" - context.font = `700 20px ${FontStack}` - context.fillStyle = "#6f6e69" - context.fillText(kicker.toUpperCase(), Pad, Pad + 16) - - context.font = `700 46px ${FontStack}` - context.fillStyle = "#ededed" - context.fillText(title, Pad - 2, Pad + 74, CardWidth - Pad * 2 - 220) - - if (chip !== "") { - context.font = `400 20px ${FontStack}` - const width = context.measureText(chip).width + 36 - const x = CardWidth - Pad - width - context.strokeStyle = "#2c2c2c" - context.lineWidth = 1 - context.beginPath() - context.roundRect(x, Pad + 38, width, 40, 20) - context.stroke() - context.fillStyle = "#9c9b96" - context.fillText(chip, x + 18, Pad + 65) - } -} - -/** Frame peeks from the bottom edge like a window, cropped by the card. */ -function drawFramePeek(context: SKRSContext2D, frame: Canvas) { - const top = 182 - const width = CardWidth - Pad * 2 - const scale = width / frame.width - const visible = CardHeight - top - const radius = 10 - - context.save() - context.beginPath() - context.roundRect(Pad, top, width, visible + radius, radius) - context.clip() - context.drawImage( - frame, - 0, - 0, - frame.width, - Math.min(frame.height, (visible + radius) / scale), - Pad, - top, - width, - Math.min(frame.height * scale, visible + radius), - ) - context.restore() - - context.strokeStyle = "#2c2c2c" - context.lineWidth = 2 - context.beginPath() - context.roundRect(Pad + 1, top + 1, width - 2, visible + radius, radius) - context.stroke() -} - -const root = new URL("../", import.meta.url) -const outDir = new URL("dist/og/", root) -const catalog = await Bun.file(new URL("dist/catalog.json", root)).json() - -const variants = catalog.variants as ReadonlyArray<{ id: string; label: string }> -const screens = catalog.screens as ReadonlyArray<{ - id: string - title: string - frames: ReadonlyArray<{ variantId: string; src: string }> -}> - -let generated = 0 -for (const screen of screens) { - for (const frame of screen.frames) { - const variant = variants.find((candidate) => candidate.id === frame.variantId) - if (!variant) continue - const artifact = (await Bun.file(new URL(frame.src, new URL("dist/", root))).json()) as FrameArtifact - const card = createCanvas(CardWidth, CardHeight) - const context = card.getContext("2d") - drawChrome(context, "OpenCode · Terminal Catalog", screen.title, variant.label) - drawFramePeek(context, renderFrame(artifact)) - await Bun.write(new URL(`${screen.id}--${variant.id}.png`, outDir), card.toBuffer("image/png")) - generated++ - } -} - -const home = screens.find((screen) => screen.id === "home") -const homeFrame = home?.frames.find((frame) => frame.variantId === variants[0]?.id) ?? home?.frames[0] -const card = createCanvas(CardWidth, CardHeight) -const context = card.getContext("2d") -drawChrome(context, "OpenCode", "Terminal Catalog", `${screens.length} screens · ${variants.length} themes`) -if (homeFrame) { - const artifact = (await Bun.file(new URL(homeFrame.src, new URL("dist/", root))).json()) as FrameArtifact - drawFramePeek(context, renderFrame(artifact)) -} -await Bun.write(new URL("default.png", outDir), card.toBuffer("image/png")) - -console.log(`generated ${generated + 1} Open Graph cards in dist/og`) diff --git a/packages/lab/catalog/scripts/reproduce-state.ts b/packages/lab/catalog/scripts/reproduce-state.ts deleted file mode 100644 index 6bc88910309..00000000000 --- a/packages/lab/catalog/scripts/reproduce-state.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { mkdir } from "node:fs/promises" -import { dirname, resolve } from "node:path" -import { fileURLToPath } from "node:url" -import { Effect } from "effect" -import { OpenCodeDriver } from "opencode-drive" -import { executableStates } from "../scenarios" -import { catalogScenarioRuntime } from "../scenarios/runtime" - -const defaultOpenCode = fileURLToPath(new URL("../../../../", import.meta.url)) -const options = parseArgs(process.argv.slice(2)) -const selected = executableStates.find((entry) => entry.address === options.address) - -if (!selected) { - const known = executableStates.map((entry) => entry.address) - throw new Error(`Unknown catalog state ${JSON.stringify(options.address)}. Known states:\n${known.join("\n")}`) -} - -await Effect.runPromise( - OpenCodeDriver.use(catalogScenarioRuntime({ opencode: options.opencode, theme: options.theme }), (driver) => - selected.run(driver, () => - Effect.gen(function* () { - const frame = yield* driver.ui.capture() - yield* Effect.promise(() => mkdir(dirname(options.output), { recursive: true })) - yield* Effect.promise(() => - Bun.write(options.output, `${JSON.stringify({ format: "opencode-terminal-frame-v1", ...frame })}\n`), - ) - }), - ), - ), -) - -console.log(options.output) - -function parseArgs(args: ReadonlyArray) { - const address = args[0] - if (!address || address.startsWith("--")) { - throw new Error("Usage: reproduce-state [--opencode path] [--output path] [--theme name]") - } - let opencode = defaultOpenCode - let output = resolve(`.tmp/reproductions/${address.replace("/", "--")}.frame.json`) - let theme: string | undefined - for (let index = 1; index < args.length; index++) { - const flag = args[index] - const value = args[++index] - if (!value) throw new Error(`${flag} requires a value`) - if (flag === "--opencode") opencode = resolve(value) - else if (flag === "--output") output = resolve(value) - else if (flag === "--theme") theme = value - else throw new Error(`Unknown argument ${flag}`) - } - return { address, opencode, output, theme } -} diff --git a/packages/lab/catalog/server.ts b/packages/lab/catalog/server.ts deleted file mode 100644 index 78f11c73d81..00000000000 --- a/packages/lab/catalog/server.ts +++ /dev/null @@ -1,51 +0,0 @@ -import index from "./src/index.html" - -const publicDirectory = new URL("./public/", import.meta.url) -const port = Number(process.env.PORT ?? "4187") - -const contentTypes = new Map([ - [".css", "text/css; charset=utf-8"], - [".js", "text/javascript; charset=utf-8"], - [".json", "application/json; charset=utf-8"], - [".svg", "image/svg+xml"], - [".png", "image/png"], - [".jpg", "image/jpeg"], -]) - -const server = Bun.serve({ - port, - development: process.env.NODE_ENV === "production" ? false : { hmr: true, console: true }, - routes: { - "/": index, - }, - async fetch(request) { - const url = new URL(request.url) - const path = normalizePath(url.pathname) - if (!path) return new Response("Not found", { status: 404 }) - - const file = Bun.file(new URL(path, publicDirectory)) - if (!(await file.exists())) return new Response("Not found", { status: 404 }) - - return new Response(file, { - headers: { - "cache-control": "no-store", - "content-type": contentType(path), - }, - }) - }, -}) - -console.log(`OpenCode terminal catalog: http://localhost:${server.port}`) - -function normalizePath(pathname: string) { - const decoded = decodeURIComponent(pathname) - const path = decoded.replace(/^\/+/, "") - if (path === "" || path.includes("..") || path.includes("\\")) return undefined - return path -} - -function contentType(path: string) { - const dot = path.lastIndexOf(".") - const extension = dot === -1 ? "" : path.slice(dot) - return contentTypes.get(extension) ?? "application/octet-stream" -} diff --git a/packages/lab/catalog/src/App.tsx b/packages/lab/catalog/src/App.tsx deleted file mode 100644 index b40e876f68b..00000000000 --- a/packages/lab/catalog/src/App.tsx +++ /dev/null @@ -1,532 +0,0 @@ -import { useEffect, useEffectEvent, useMemo, useReducer, useRef, useState } from "react" -import type { BrowseMode, Catalog, Facet, FacetSelections, Taxonomy } from "./catalog" -import { buildFacetIndex, emptyFacetSelections, facetValues, filterFlows, filterScreens, frameFor } from "./catalog" -import { CommandPalette } from "./components/CommandPalette" -import { ContactSheet } from "./components/ContactSheet" -import { FilterBar } from "./components/FilterBar" -import { FlowBrowser } from "./components/FlowBrowser" -import { Header } from "./components/Header" -import { MatrixNavigation } from "./components/MatrixNavigation" -import { Viewer } from "./components/Viewer" -import { preloadFrame } from "./components/TerminalFrame" -import { catalogBrowseUrl, catalogDeepLink, catalogRootUrl, readCatalogLocation } from "./deep-link" - -interface AppProps { - readonly catalog: Catalog -} - -interface UiState { - readonly mode: BrowseMode - readonly query: string - readonly screenLabels: ReadonlyArray - readonly uiElements: ReadonlyArray - readonly facets: FacetSelections - readonly activeFlowId: string | undefined - readonly selectedScreenId: string | undefined - readonly viewerOpen: boolean - readonly paletteOpen: boolean - readonly gridFocusTick: number -} - -type UiAction = - | { readonly type: "set-mode"; readonly mode: BrowseMode } - | { readonly type: "search"; readonly query: string } - | { readonly type: "toggle-taxonomy"; readonly taxonomy: Taxonomy; readonly value: string } - | { readonly type: "clear-taxonomy"; readonly taxonomy: Taxonomy } - | { readonly type: "toggle-facet"; readonly facet: Facet; readonly value: string } - | { readonly type: "clear-facet"; readonly facet: Facet } - | { readonly type: "clear-facets" } - | { readonly type: "reset-view" } - | { readonly type: "clear-search" } - | { readonly type: "select-flow"; readonly id: string } - | { readonly type: "select-screen"; readonly id: string } - | { readonly type: "navigate"; readonly id: string } - | { readonly type: "open-viewer"; readonly id: string } - | { readonly type: "close-viewer" } - | { readonly type: "jump-to-screen"; readonly id: string } - | { readonly type: "jump-to-flow"; readonly id: string } - | { readonly type: "open-palette" } - | { readonly type: "close-palette" } - | { readonly type: "toggle-palette" } - | { - readonly type: "restore-location" - readonly screenId?: string - readonly flowId?: string - readonly mode: BrowseMode - readonly query: string - readonly screenLabels: ReadonlyArray - readonly uiElements: ReadonlyArray - readonly facets: FacetSelections - } - -function toggle(values: ReadonlyArray, value: string): ReadonlyArray { - return values.includes(value) ? values.filter((candidate) => candidate !== value) : [...values, value] -} - -function uiReducer(state: UiState, action: UiAction): UiState { - switch (action.type) { - case "set-mode": - // Filters and query survive tab switches, matching Mobbin's browse behavior. - return { - ...state, - mode: action.mode, - viewerOpen: false, - selectedScreenId: undefined, - gridFocusTick: state.gridFocusTick + 1, - } - case "search": - return { ...state, query: action.query } - case "toggle-taxonomy": { - // Palette stays open so stacked filter selections read as additive. - const key = action.taxonomy === "screen" ? "screenLabels" : "uiElements" - return { - ...state, - mode: action.taxonomy === "screen" ? "screens" : "ui-elements", - [key]: toggle(state[key], action.value), - viewerOpen: false, - selectedScreenId: undefined, - gridFocusTick: state.gridFocusTick + 1, - } - } - case "clear-taxonomy": { - const key = action.taxonomy === "screen" ? "screenLabels" : "uiElements" - return { ...state, [key]: [], selectedScreenId: undefined, gridFocusTick: state.gridFocusTick + 1 } - } - case "toggle-facet": - return { - ...state, - facets: { ...state.facets, [action.facet]: toggle(state.facets[action.facet], action.value) }, - viewerOpen: false, - selectedScreenId: undefined, - gridFocusTick: state.gridFocusTick + 1, - } - case "clear-facet": - return { - ...state, - facets: { ...state.facets, [action.facet]: [] }, - selectedScreenId: undefined, - gridFocusTick: state.gridFocusTick + 1, - } - case "clear-facets": - return { - ...state, - facets: emptyFacetSelections, - selectedScreenId: undefined, - gridFocusTick: state.gridFocusTick + 1, - } - case "reset-view": - return { - ...state, - query: "", - screenLabels: [], - uiElements: [], - facets: emptyFacetSelections, - selectedScreenId: undefined, - gridFocusTick: state.gridFocusTick + 1, - } - case "clear-search": - return { ...state, query: "", gridFocusTick: state.gridFocusTick + 1 } - case "select-flow": - return { ...state, activeFlowId: action.id } - case "select-screen": - return { ...state, selectedScreenId: action.id, gridFocusTick: state.gridFocusTick + 1 } - case "navigate": - return { ...state, selectedScreenId: action.id } - case "open-viewer": - return { ...state, selectedScreenId: action.id, viewerOpen: true } - case "close-viewer": - return { ...state, viewerOpen: false, gridFocusTick: state.gridFocusTick + 1 } - case "jump-to-screen": - return { - ...state, - mode: "screens", - query: "", - paletteOpen: false, - selectedScreenId: action.id, - viewerOpen: true, - } - case "jump-to-flow": - return { - ...state, - mode: "flows", - query: "", - activeFlowId: action.id, - selectedScreenId: undefined, - viewerOpen: false, - paletteOpen: false, - } - case "open-palette": - return { ...state, paletteOpen: true } - case "close-palette": - return { - ...state, - paletteOpen: false, - gridFocusTick: state.viewerOpen ? state.gridFocusTick : state.gridFocusTick + 1, - } - case "toggle-palette": - return state.paletteOpen ? uiReducer(state, { type: "close-palette" }) : { ...state, paletteOpen: true } - case "restore-location": - return { - ...state, - mode: action.flowId ? "flows" : action.mode, - query: action.query, - screenLabels: action.screenLabels, - uiElements: action.uiElements, - facets: action.facets, - activeFlowId: action.flowId ?? state.activeFlowId, - selectedScreenId: action.screenId, - viewerOpen: action.screenId !== undefined, - } - } -} - -export function App({ catalog }: AppProps) { - const initialLocation = readCatalogLocation(new URL(window.location.href)) - const initialScreen = catalog.screens.some((screen) => screen.id === initialLocation.screenId) - ? initialLocation.screenId - : undefined - const initialFlow = catalog.flows.some((flow) => flow.id === initialLocation.flowId) - ? initialLocation.flowId - : undefined - const initialMode = initialFlow - ? "flows" - : initialLocation.mode === "ui-elements" || initialLocation.mode === "flows" - ? initialLocation.mode - : "screens" - const [ui, dispatch] = useReducer(uiReducer, { - mode: initialMode, - query: initialLocation.query, - screenLabels: initialLocation.screenLabels, - uiElements: initialLocation.uiElements, - facets: { - surface: initialLocation.surfaces, - pattern: initialLocation.patterns, - feature: initialLocation.features, - state: initialLocation.states, - }, - activeFlowId: initialFlow ?? catalog.flows[0]?.id, - selectedScreenId: initialScreen ?? catalog.screens[0]?.id, - viewerOpen: initialScreen !== undefined, - paletteOpen: false, - gridFocusTick: 0, - }) - const [variantIndex, setVariantIndex] = useState(() => { - const index = catalog.variants.findIndex((variant) => variant.id === initialLocation.variantId) - if (index >= 0) return index - const opencode = catalog.variants.findIndex((variant) => variant.id === "opencode") - if (opencode >= 0) return opencode - const coverage = catalog.variants.map( - (variant) => catalog.screens.filter((screen) => frameFor(screen, variant.id) !== undefined).length, - ) - return coverage.indexOf(Math.max(...coverage)) - }) - const searchRef = useRef(null) - const activeVariant = catalog.variants[variantIndex] ?? catalog.variants[0] - - const deepLinkFor = (screenId: string, flowId?: string) => - catalogDeepLink(screenId, { flowId, variantId: activeVariant.id }) - - const openViewer = (screenId: string, flowId?: string) => { - window.history.pushState(null, "", deepLinkFor(screenId, flowId)) - dispatch({ type: "open-viewer", id: screenId }) - } - const availableScreens = useMemo( - () => catalog.screens.filter((screen) => frameFor(screen, activeVariant.id) !== undefined), - [catalog.screens, activeVariant.id], - ) - - const facetIndex = useMemo(() => buildFacetIndex(catalog.screens), [catalog.screens]) - const screens = useMemo( - () => - filterScreens(availableScreens, ui.query, ui.mode, { - screenLabels: ui.screenLabels, - uiElements: ui.uiElements, - facets: ui.facets, - }), - [availableScreens, ui.query, ui.mode, ui.screenLabels, ui.uiElements, ui.facets], - ) - const flows = useMemo(() => filterFlows(catalog.flows, ui.query), [catalog.flows, ui.query]) - const activeFlow = flows.find((flow) => flow.id === ui.activeFlowId) ?? flows[0] - const viewerScreens = useMemo( - () => - ui.mode === "flows" && activeFlow - ? activeFlow.steps.flatMap((step) => { - const screen = availableScreens.find((candidate) => candidate.id === step.screenId) - return screen ? [screen] : [] - }) - : screens, - [activeFlow, availableScreens, screens, ui.mode], - ) - const selectedId = viewerScreens.some((screen) => screen.id === ui.selectedScreenId) - ? ui.selectedScreenId - : viewerScreens[0]?.id - const selectedScreen = availableScreens.find((screen) => screen.id === selectedId) - const taxonomy = ui.mode === "screens" ? catalog.screenTaxonomy : catalog.uiElementTaxonomy - const taxonomyValues = ui.mode === "screens" ? ui.screenLabels : ui.uiElements - const taxonomyCounts = useMemo(() => { - const counts = new Map() - for (const screen of availableScreens) { - const values = ui.mode === "screens" ? screen.screenLabels : screen.uiElements - for (const value of values) counts.set(value, (counts.get(value) ?? 0) + 1) - } - return counts - }, [availableScreens, ui.mode]) - const facetCounts = useMemo(() => { - const counts = new Map() - for (const screen of availableScreens) { - for (const facet of ["surface", "pattern", "feature", "state"] as ReadonlyArray) { - for (const value of facetValues(screen, facet)) { - counts.set(`${facet}:${value}`, (counts.get(`${facet}:${value}`) ?? 0) + 1) - } - } - } - return counts - }, [availableScreens]) - - const navigateViewer = (direction: 1 | -1) => { - if (viewerScreens.length === 0) return - const current = viewerScreens.findIndex((screen) => screen.id === selectedId) - const next = viewerScreens[(current + direction + viewerScreens.length) % viewerScreens.length] - if (next) { - window.history.replaceState(null, "", deepLinkFor(next.id, ui.mode === "flows" ? activeFlow?.id : undefined)) - dispatch({ type: "navigate", id: next.id }) - } - } - - const navigateVariant = (direction: 1 | -1) => { - setVariantIndex((current) => (current + direction + catalog.variants.length) % catalog.variants.length) - } - - const handleWindowKeyDown = useEffectEvent((event: KeyboardEvent) => { - if ((event.metaKey || event.ctrlKey) && event.key.toLowerCase() === "k") { - event.preventDefault() - dispatch({ type: "toggle-palette" }) - return - } - if (ui.paletteOpen || ui.viewerOpen) return - const target = event.target - const editing = - target instanceof HTMLInputElement || - target instanceof HTMLTextAreaElement || - (target instanceof HTMLElement && target.isContentEditable) - if (editing) return - if (event.shiftKey && (event.key === "ArrowUp" || event.key === "ArrowDown")) { - event.preventDefault() - navigateVariant(event.key === "ArrowUp" ? -1 : 1) - return - } - if (event.key === "/") { - event.preventDefault() - searchRef.current?.focus() - return - } - const hasFilters = taxonomyValues.length > 0 || Object.values(ui.facets).some((values) => values.length > 0) - if (event.key === "Escape" && (ui.query !== "" || hasFilters)) { - event.preventDefault() - dispatch({ type: "reset-view" }) - } - }) - - useEffect(() => { - const listener = (event: KeyboardEvent) => handleWindowKeyDown(event) - window.addEventListener("keydown", listener) - return () => window.removeEventListener("keydown", listener) - }, []) - - useEffect(() => { - if (ui.viewerOpen) return - window.history.replaceState( - null, - "", - catalogBrowseUrl({ - variantId: activeVariant.id, - mode: ui.mode, - query: ui.query, - screenLabels: ui.screenLabels, - uiElements: ui.uiElements, - surfaces: ui.facets.surface, - patterns: ui.facets.pattern, - features: ui.facets.feature, - states: ui.facets.state, - }), - ) - }, [activeVariant.id, ui.facets, ui.mode, ui.query, ui.screenLabels, ui.uiElements, ui.viewerOpen]) - - useEffect(() => { - if (!ui.viewerOpen || !selectedScreen) return - const url = new URL( - catalogDeepLink(selectedScreen.id, { - flowId: ui.mode === "flows" ? activeFlow?.id : undefined, - variantId: activeVariant.id, - }), - ) - if (window.location.hash.startsWith("#annotations=")) url.hash = window.location.hash - window.history.replaceState(null, "", url) - }, [activeVariant.id, activeFlow?.id, selectedScreen, ui.mode, ui.viewerOpen]) - - useEffect(() => { - if (!ui.viewerOpen || selectedId === undefined || viewerScreens.length < 2) return - const current = viewerScreens.findIndex((screen) => screen.id === selectedId) - for (const offset of [-1, 1]) { - const screen = viewerScreens[(current + offset + viewerScreens.length) % viewerScreens.length] - const frame = screen && frameFor(screen, activeVariant.id) - if (frame) void preloadFrame(frame) - } - }, [activeVariant.id, selectedId, ui.viewerOpen, viewerScreens]) - - useEffect(() => { - const restore = () => { - const location = readCatalogLocation(new URL(window.location.href)) - const screenId = catalog.screens.some((screen) => screen.id === location.screenId) ? location.screenId : undefined - const flowId = catalog.flows.some((flow) => flow.id === location.flowId) ? location.flowId : undefined - const nextVariant = catalog.variants.findIndex((variant) => variant.id === location.variantId) - if (nextVariant >= 0) setVariantIndex(nextVariant) - const mode = flowId - ? "flows" - : location.mode === "ui-elements" || location.mode === "flows" - ? location.mode - : "screens" - dispatch({ - type: "restore-location", - screenId, - flowId, - mode, - query: location.query, - screenLabels: location.screenLabels, - uiElements: location.uiElements, - facets: { - surface: location.surfaces, - pattern: location.patterns, - feature: location.features, - state: location.states, - }, - }) - } - window.addEventListener("popstate", restore) - return () => window.removeEventListener("popstate", restore) - }, [catalog]) - - const taxonomyType: Taxonomy = ui.mode === "ui-elements" ? "ui-element" : "screen" - - return ( - <> -
-
dispatch({ type: "set-mode", mode })} - onQuery={(query) => dispatch({ type: "search", query })} - onClearSearch={() => dispatch({ type: "clear-search" })} - onOpenPalette={() => dispatch({ type: "open-palette" })} - onVariantSelect={(id) => - setVariantIndex( - Math.max( - 0, - catalog.variants.findIndex((variant) => variant.id === id), - ), - ) - } - /> - {ui.mode !== "flows" ? ( - <> - dispatch({ type: "toggle-taxonomy", taxonomy: taxonomyType, value })} - onClearTaxonomy={() => dispatch({ type: "clear-taxonomy", taxonomy: taxonomyType })} - onFacet={(facet, value) => dispatch({ type: "toggle-facet", facet, value })} - onClearFacet={(facet) => dispatch({ type: "clear-facet", facet })} - onClearQuery={() => dispatch({ type: "clear-search" })} - onClearAll={() => dispatch({ type: "reset-view" })} - /> - - - ) : undefined} - {ui.mode === "flows" ? ( - dispatch({ type: "select-flow", id })} - onOpen={(id) => openViewer(id, activeFlow?.id)} - deepLinkFor={deepLinkFor} - /> - ) : ( - dispatch({ type: "select-screen", id })} - onOpen={(id) => openViewer(id)} - onClearFilters={() => dispatch({ type: "reset-view" })} - deepLinkFor={deepLinkFor} - /> - )} -
- {ui.viewerOpen && selectedScreen ? ( - screen.id === selectedScreen.id) + 1} - total={viewerScreens.length} - active={!ui.paletteOpen} - onClose={() => { - window.history.pushState(null, "", catalogRootUrl()) - dispatch({ type: "close-viewer" }) - }} - onNavigate={navigateViewer} - onVariant={navigateVariant} - onVariantSelect={(id) => - setVariantIndex( - Math.max( - 0, - catalog.variants.findIndex((variant) => variant.id === id), - ), - ) - } - onFacet={(filter) => dispatch({ type: "toggle-facet", ...filter })} - onTaxonomy={(taxonomy, value) => dispatch({ type: "toggle-taxonomy", taxonomy, value })} - /> - ) : undefined} - {ui.paletteOpen ? ( - dispatch({ type: "close-palette" })} - onFacet={(filter) => dispatch({ type: "toggle-facet", ...filter })} - onTaxonomy={(taxonomy, value) => dispatch({ type: "toggle-taxonomy", taxonomy, value })} - onScreen={(id) => dispatch({ type: "jump-to-screen", id })} - onFlow={(id) => dispatch({ type: "jump-to-flow", id })} - /> - ) : undefined} - - ) -} diff --git a/packages/lab/catalog/src/annotations.ts b/packages/lab/catalog/src/annotations.ts deleted file mode 100644 index e7fe01e4f94..00000000000 --- a/packages/lab/catalog/src/annotations.ts +++ /dev/null @@ -1,82 +0,0 @@ -export interface Annotation { - readonly id: string - readonly row: number - readonly column: number - readonly note: string -} - -export interface AnnotationDocument { - readonly version: 1 - readonly identifier: string - readonly variant: string - readonly annotations: ReadonlyArray -} - -const FragmentKey = "annotations" -const MaxAnnotations = 24 -const MaxNoteLength = 2_000 - -export function annotationUrl(deepLink: string, document: AnnotationDocument) { - const url = new URL(deepLink) - url.hash = `${FragmentKey}=${encode(document)}` - return url.href -} - -export function readAnnotations(url: URL, identifier: string, variant: string): ReadonlyArray { - const params = new URLSearchParams(url.hash.slice(1)) - const encoded = params.get(FragmentKey) - if (!encoded) return [] - const value = decode(encoded) - if (!isDocument(value) || value.identifier !== identifier || value.variant !== variant) return [] - return value.annotations -} - -export function readAnnotationDraft(value: string): ReadonlyArray { - try { - const annotations: unknown = JSON.parse(value) - return isAnnotations(annotations) ? annotations : [] - } catch { - return [] - } -} - -function encode(value: AnnotationDocument) { - const bytes = new TextEncoder().encode(JSON.stringify(value)) - return btoa(Array.from(bytes, (byte) => String.fromCharCode(byte)).join("")) - .replaceAll("+", "-") - .replaceAll("/", "_") - .replace(/=+$/, "") -} - -function decode(value: string): unknown { - try { - const binary = atob(value.replaceAll("-", "+").replaceAll("_", "/")) - return JSON.parse(new TextDecoder().decode(Uint8Array.from(binary, (character) => character.charCodeAt(0)))) - } catch { - return undefined - } -} - -function isDocument(value: unknown): value is AnnotationDocument { - if (!value || typeof value !== "object") return false - const document = value as Partial - if (document.version !== 1 || typeof document.identifier !== "string" || typeof document.variant !== "string") - return false - return isAnnotations(document.annotations) -} - -function isAnnotations(value: unknown): value is ReadonlyArray { - if (!Array.isArray(value) || value.length > MaxAnnotations) return false - return value.every( - (annotation) => - annotation && - typeof annotation === "object" && - typeof annotation.id === "string" && - Number.isInteger(annotation.row) && - annotation.row >= 0 && - Number.isInteger(annotation.column) && - annotation.column >= 0 && - typeof annotation.note === "string" && - annotation.note.length <= MaxNoteLength, - ) -} diff --git a/packages/lab/catalog/src/base-path.ts b/packages/lab/catalog/src/base-path.ts deleted file mode 100644 index 4a08b995a5c..00000000000 --- a/packages/lab/catalog/src/base-path.ts +++ /dev/null @@ -1,3 +0,0 @@ -export function catalogBasePath() { - return window.location.pathname.startsWith("/lab/catalog") ? "/lab/catalog/" : "/" -} diff --git a/packages/lab/catalog/src/catalog.ts b/packages/lab/catalog/src/catalog.ts deleted file mode 100644 index 6024160ab20..00000000000 --- a/packages/lab/catalog/src/catalog.ts +++ /dev/null @@ -1,133 +0,0 @@ -import type { Catalog, Flow, FlowStep, Frame, Screen, TaxonomyGroup, TaxonomyItem, Variant } from "../catalog/schema" - -export type { Catalog, Flow, FlowStep, Frame, Screen, TaxonomyGroup, TaxonomyItem, Variant } - -export type Facet = "surface" | "pattern" | "feature" | "state" -export type BrowseMode = "screens" | "ui-elements" | "flows" -export type Taxonomy = "screen" | "ui-element" - -export interface Filter { - readonly facet: Facet - readonly value: string -} - -export type FacetSelections = Readonly>> - -export interface CatalogSelections { - readonly screenLabels: ReadonlyArray - readonly uiElements: ReadonlyArray - readonly facets: FacetSelections -} - -export function frameFor(screen: Screen, variantId: string): Frame | undefined { - return screen.frames.find((frame) => frame.variantId === variantId) -} - -const rendererFamilies = [ - "notification", - "shell", - "patch", - "read", - "web", - "search", - "question", - "subagent", - "assistant", -] - -export function screenFamily(screen: Screen): string { - return rendererFamilies.find((family) => screen.features.includes(family)) ?? screen.category -} - -export const emptyFacetSelections: FacetSelections = { - surface: [], - pattern: [], - feature: [], - state: [], -} - -export function label(value: string): string { - return value - .split("-") - .map((part) => part.charAt(0).toUpperCase() + part.slice(1)) - .join(" ") -} - -export function taxonomyLabel(groups: ReadonlyArray, id: string): string { - for (const group of groups) { - const item = group.items.find((candidate) => candidate.id === id) - if (item) return item.label - } - return label(id) -} - -export function facetValues(screen: Screen, facet: Facet): ReadonlyArray { - if (facet === "surface") return screen.surfaces - if (facet === "pattern") return screen.patterns - if (facet === "feature") return screen.features - return screen.states -} - -export type FacetIndex = ReadonlyMap>> - -export function buildFacetIndex(screens: ReadonlyArray): FacetIndex { - const index = new Map>>([ - ["surface", new Map()], - ["pattern", new Map()], - ["feature", new Map()], - ["state", new Map()], - ]) - for (const screen of screens) { - for (const [facet, values] of index) { - for (const value of facetValues(screen, facet)) { - const ids = values.get(value) - if (ids) ids.add(screen.id) - else values.set(value, new Set([screen.id])) - } - } - } - return index -} - -export function filterScreens( - screens: ReadonlyArray, - query: string, - mode: BrowseMode, - selections: CatalogSelections, -): ReadonlyArray { - const needle = query.trim().toLowerCase() - const taxonomyValues = new Set(mode === "screens" ? selections.screenLabels : selections.uiElements) - const selectedFacets = (Object.keys(selections.facets) as ReadonlyArray).map( - (facet) => [facet, new Set(selections.facets[facet])] as const, - ) - - return screens.filter((screen) => { - if (mode !== "flows" && taxonomyValues.size > 0) { - const values = mode === "screens" ? screen.screenLabels : screen.uiElements - if (!values.some((value) => taxonomyValues.has(value))) return false - } - - for (const [facet, selected] of selectedFacets) { - if (selected.size > 0 && !facetValues(screen, facet).some((value) => selected.has(value))) { - return false - } - } - - if (needle === "") return true - return [screen.title, screen.category, ...screen.tags, ...screen.screenLabels, ...screen.uiElements] - .join(" ") - .toLowerCase() - .includes(needle) - }) -} - -export function filterFlows(flows: ReadonlyArray, query: string): ReadonlyArray { - const needle = query.trim().toLowerCase() - if (needle === "") return flows - return flows.filter((flow) => - [flow.title, flow.group, flow.description, ...flow.steps.flatMap((step) => [step.title, step.trigger ?? ""])] - .join(" ") - .toLowerCase() - .includes(needle), - ) -} diff --git a/packages/lab/catalog/src/components/AnnotationEditor.tsx b/packages/lab/catalog/src/components/AnnotationEditor.tsx deleted file mode 100644 index a787335333b..00000000000 --- a/packages/lab/catalog/src/components/AnnotationEditor.tsx +++ /dev/null @@ -1,185 +0,0 @@ -import { useEffect, useRef, useState } from "react" -import type { Annotation } from "../annotations" - -interface AnnotationEditorProps { - readonly cols: number - readonly rows: number - readonly annotations: ReadonlyArray - readonly onAdd: (row: number, column: number, note: string) => void - readonly onChange: (id: string, note: string) => void - readonly onDelete: (id: string) => void - readonly issueLink: string - readonly onDone: () => void -} - -interface Draft { - readonly id?: string - readonly row: number - readonly column: number - readonly note: string -} - -export function AnnotationEditor(props: AnnotationEditorProps) { - const [draft, setDraft] = useState() - const textareaRef = useRef(null) - const complete = props.annotations.filter((annotation) => annotation.note.trim() !== "") - - useEffect(() => { - if (!draft) return - const frame = requestAnimationFrame(() => { - textareaRef.current?.focus() - textareaRef.current?.setSelectionRange(draft.note.length, draft.note.length) - }) - return () => cancelAnimationFrame(frame) - }, [draft?.id, draft?.row, draft?.column]) - - const save = () => { - if (!draft?.note.trim()) return - if (draft.id) props.onChange(draft.id, draft.note.trim()) - else props.onAdd(draft.row, draft.column, draft.note.trim()) - setDraft(undefined) - } - - const edit = (annotation: Annotation) => - setDraft({ id: annotation.id, row: annotation.row, column: annotation.column, note: annotation.note }) - - return ( - <> -
{ - if (event.target !== event.currentTarget) return - const bounds = event.currentTarget.getBoundingClientRect() - const column = Math.min( - props.cols - 1, - Math.max(0, Math.floor(((event.clientX - bounds.left) / bounds.width) * props.cols)), - ) - const row = Math.min( - props.rows - 1, - Math.max(0, Math.floor(((event.clientY - bounds.top) / bounds.height) * props.rows)), - ) - setDraft({ row, column, note: "" }) - }} - > - {props.annotations.map((annotation, index) => ( - - ))} - {draft ? ( -
props.rows / 2 ? " above" : ""}`} - style={{ - left: `clamp(9rem, ${((draft.column + 0.5) / props.cols) * 100}%, calc(100% - 9rem))`, - top: `${((draft.row + 0.5) / props.rows) * 100}%`, - }} - onPointerDown={(event) => event.stopPropagation()} - > -
- {draft.id ? "Edit annotation" : "New annotation"} - - R{draft.row + 1} · C{draft.column + 1} - -
-