Skip to content

Conversation

@jkilzi
Copy link
Contributor

@jkilzi jkilzi commented Jan 8, 2026

  • Adds the UI dev environment to allow porting the Agent UI from vanilla javaScript to React+TS

Signed-off-by: Jonathan Kilzi [email protected]

Summary by CodeRabbit

  • New Features

    • Established a new React-based UI application with TypeScript and Vite for modern development.
  • Chores

    • Set up comprehensive development tooling including ESLint, TypeScript configuration, and Yarn package management.
    • Updated Docker configuration to include only necessary UI assets in the container image.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link

coderabbitai bot commented Jan 8, 2026

📝 Walkthrough

Walkthrough

This PR introduces a React + TypeScript + Vite-based UI project structure in the agent-ui directory with comprehensive tooling configuration. The Containerfile is updated to include only the legacy HTML assets in the final image, while new React application infrastructure, build configurations, and development dependencies are established.

Changes

Cohort / File(s) Summary
Container Configuration
Containerfile.agent
Modified COPY directive to include only /agent-ui/legacy contents instead of all agent-ui contents in the image build.
Yarn & Package Management
.gitattributes, .gitignore, .yarnrc.yml, package.json
Added Yarn 4 configuration (zero-installs, node-modules linker), comprehensive gitignore rules, and package manifest with React/React-DOM dependencies and Vite/ESLint dev tooling.
IDE & Editor Configuration
agent-ui.code-workspace
New VSCode workspace definition with recommended extensions (Prettier, ESLint, Styled Components).
TypeScript Configuration
tsconfig.json, tsconfig.app.json, tsconfig.node.json
Multi-project TypeScript setup with separate configs for application code (ES2022 target, strict checks) and build tooling (ES2023 target, bundler mode).
Build & Development Tools
eslint.config.js, vite.config.ts
ESLint configuration with TypeScript and React plugin support; Vite config using React SWC plugin for optimized builds.
Documentation
README.md
Vite React template documentation including plugin details, ESLint configuration examples, and type-aware linting setup.
React Application Entry Point
index.html, src/main.tsx, src/App.tsx
Minimal HTML shell bootstrapping a React SPA; main entry point creating DOM root and rendering App component; functional App component with counter state and styling references.
React Styling
src/App.css, src/index.css
Global and component-level CSS with dark/light mode support, button styling, animations, and responsive defaults.
Legacy HTML UI
legacy/index.html
Static HTML shell for Migration Discovery VM UI card with PatternFly styling, image containers, and external script dependencies.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Suggested labels

need-second-approve

Suggested reviewers

  • machacekondra
  • tupyy
  • nirarg
  • ronenav

Poem

🐰 A React app hops into the nest,
With Vite and TypeScript putting tests to rest,
Legacy lives in its quiet corner still,
While modern tooling bends to coder's will—
The future builds faster, oh what a thrill! 🚀

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and specifically describes the main change: setting up a React+TypeScript dev environment for the Agent UI, which is the primary focus of the changeset.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 9

🤖 Fix all issues with AI agents
In @agent-ui-react/agent-ui-react.code-workspace:
- Around line 1-7: Delete the empty agent-ui-react directory and its workspace
file agent-ui-react/agent-ui-react.code-workspace; remove any references to that
workspace in CI, docs, or repo metadata, and ensure the valid workspace
agent-ui/agent-ui.code-workspace remains as the sole UI workspace; commit the
removal and update any README or contributing docs that mentioned
agent-ui-react.

In @agent-ui/agent-ui.code-workspace:
- Around line 8-14: The JSON workspace contains a trailing comma in the
"extensions"."recommendations" array (after
"styled-components.vscode-styled-components"); remove that trailing comma so the
array is valid JSON (no comma after the last element) to fix the syntax error
and allow VSCode to load the workspace.
- Around line 10-12: Remove the unnecessary workspace extension recommendation
"styled-components.vscode-styled-components" from the agent-ui.code-workspace
extensions list; locate the extensions array that currently contains
"esbenp.prettier-vscode", "dbaeumer.vscode-eslint", and
"styled-components.vscode-styled-components" and delete the
"styled-components.vscode-styled-components" entry so only the actual project
extensions remain recommended.

In @agent-ui/legacy/index.html:
- Line 31: The HTML mixes PatternFly v5 and v6 class names causing styling
inconsistencies; update the divider elements that use "pf-v5-c-divider" (e.g.,
the <hr> at the occurrence shown and the one at line 48) to the v6 equivalent
"pf-v6-c-divider" so all PatternFly classes (like "pf-v6-c-card" and
"pf-v6-c-content") are consistently v6; search for any remaining "pf-v5-*"
tokens in this file (agent-ui/legacy/index.html) and replace them with the
corresponding "pf-v6-*" classes where appropriate.
- Line 8: The page title currently reads "Login" but the UI is for the
"Migration Discovery VM"; update the <title> element in index.html (the title
tag) to reflect the actual page purpose (e.g., "Migration Discovery VM" or a
more descriptive phrase like "Migration Discovery VM — Dashboard") so the title
matches the content and improves accessibility and SEO.

In @agent-ui/package.json:
- Around line 1-31: Update the vulnerable dependency versions in package.json:
change the "react" and "react-dom" entries to at least 19.2.1 (recommend
^19.2.3) to patch CVE-2025-55182, and update "vite" to ^7.3.1; after editing the
"dependencies" block for "react", "react-dom", and "vite", run your package
manager (yarn) to refresh the lockfile and reinstall so the updated versions are
applied.

In @agent-ui/src/App.tsx:
- Line 15: Update the external anchor in the App component to include
rel="noopener noreferrer": locate the JSX anchor element (<a
href="https://react.dev" target="_blank">) in agent-ui/src/App.tsx (same pattern
as the other external link flagged on line 12) and add rel="noopener noreferrer"
to the tag to mitigate the security risk when using target="_blank".
- Line 12: The external anchor element (<a href="https://vite.dev"
target="_blank">) in App.tsx should include rel="noopener noreferrer" to prevent
tabnabbing and block access to window.opener; update that anchor in the App
component to add rel="noopener noreferrer" alongside the existing target
attribute.

In @agent-ui/vite.config.ts:
- Line 4: Update the top comment that currently reads "https://vite.dev/config/"
to the correct Vite documentation URL "https://vitejs.dev/config/" so the inline
reference points to the official docs; locate the comment string
"https://vite.dev/config/" in vite.config.ts and replace it with
"https://vitejs.dev/config/".
🧹 Nitpick comments (1)
agent-ui/vite.config.ts (1)

5-7: Consider additional configuration for production readiness.

The current configuration is minimal but functional for development. Consider adding configuration for:

  • Server options (port, proxy for backend API calls)
  • Build output directory if different from default dist
  • Base path if the app won't be served from root
Example enhanced configuration
export default defineConfig({
  plugins: [react()],
  server: {
    port: 3000,
    // proxy: {
    //   '/api': 'http://localhost:8080'
    // }
  },
  // build: {
  //   outDir: 'dist',
  // },
  // base: '/',
})
📜 Review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between bd435bf and 1b68828.

⛔ Files ignored due to path filters (231)
  • agent-ui/.yarn/cache/@babel-code-frame-npm-7.27.1-4dbcabb137-5dd9a18baa.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@babel-compat-data-npm-7.28.5-41f8d327e8-702a25de73.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@babel-core-npm-7.28.5-cd68c2d8db-535f822380.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@babel-generator-npm-7.28.5-fd8f3ae6b1-9f219fe1d5.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@babel-helper-compilation-targets-npm-7.27.2-111dda04b6-f338fa00dc.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@babel-helper-globals-npm-7.28.0-8d79c12faf-5a0cd0c0e8.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@babel-helper-module-imports-npm-7.27.1-3bf33978f4-e00aace096.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@babel-helper-module-transforms-npm-7.28.3-7b69ec189a-549be62515.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@babel-helper-string-parser-npm-7.27.1-d1471e0598-8bda3448e0.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@babel-helper-validator-identifier-npm-7.28.5-1953d49d2b-42aaebed91.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@babel-helper-validator-option-npm-7.27.1-7c563f0423-6fec5f006e.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@babel-helpers-npm-7.28.4-d9f7567704-aaa5fb8098.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@babel-parser-npm-7.28.5-f2345a6b62-5bbe48bf2c.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@babel-template-npm-7.27.2-77e67eabbd-ed9e902265.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@babel-traverse-npm-7.28.5-2b51d83636-f6c4a59599.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@babel-types-npm-7.28.5-582d7cca8a-a5a483d210.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@esbuild-darwin-arm64-npm-0.27.2-d675c4a521-10c0.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@eslint-community-eslint-utils-npm-4.9.1-30ad3d49de-dc4ab5e3e3.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@eslint-community-regexpp-npm-4.12.2-3d54624470-fddcbc6685.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@eslint-config-array-npm-0.21.1-c33ed9ec91-2f657d4edd.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@eslint-config-helpers-npm-0.4.2-a55655f805-92efd7a527.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@eslint-core-npm-0.17.0-8579df04c4-9a580f2246.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@eslint-eslintrc-npm-3.3.3-8ccf6281a3-532c7acc7d.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@eslint-js-npm-9.39.2-c8e5f9bf73-00f51c52b0.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@eslint-object-schema-npm-2.1.7-cb962a5b9b-936b6e4998.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@eslint-plugin-kit-npm-0.4.1-3df70dd079-51600f78b7.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@humanfs-core-npm-0.19.1-e2e7aaeb6e-aa4e015217.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@humanfs-node-npm-0.16.7-fa16bdb590-9f83d3cf2c.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@humanwhocodes-module-importer-npm-1.0.1-9d07ed2e4a-909b69c3b8.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@humanwhocodes-retry-npm-0.4.3-a8d7ca1663-3775bb3008.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@isaacs-balanced-match-npm-4.0.1-8965afafe6-7da011805b.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@isaacs-brace-expansion-npm-5.0.0-754d3cb3f5-b4d4812f4b.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@isaacs-fs-minipass-npm-4.0.1-677026e841-c25b6dc159.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@jridgewell-gen-mapping-npm-0.3.13-9bd96ac800-9a7d65fb13.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@jridgewell-remapping-npm-2.3.5-df8dacc063-3de494219f.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@jridgewell-resolve-uri-npm-3.1.2-5bc4245992-d502e6fb51.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@jridgewell-sourcemap-codec-npm-1.5.5-5189d9fc79-f9e538f302.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@jridgewell-trace-mapping-npm-0.3.31-1ae81d75ac-4b30ec8cd5.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@npmcli-agent-npm-4.0.0-502e5ae4f0-f7b5ce0f3d.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@npmcli-fs-npm-5.0.0-9d737ae2f3-26e376d780.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@rolldown-pluginutils-npm-1.0.0-beta.47-a120edadda-eb0cfa7334.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@rollup-rollup-darwin-arm64-npm-4.55.1-16138f7e16-10c0.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@swc-core-darwin-arm64-npm-1.15.8-126f9f1524-10c0.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@swc-core-npm-1.15.8-73471b3117-929f334a22.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@swc-counter-npm-0.1.3-ce42b0e3f5-8424f60f6b.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@swc-types-npm-0.1.25-8a74ae00bc-847a5b20b1.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@types-estree-npm-1.0.8-2195bac6d6-39d34d1afa.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@types-json-schema-npm-7.0.15-fd16381786-a996a745e6.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@types-node-npm-24.10.4-7db9e6df3a-069639cb72.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@types-react-dom-npm-19.2.3-1b243fa1cb-b486ebe0f4.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@types-react-npm-19.2.7-2ae71602b6-a7b75f1f9f.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@typescript-eslint-eslint-plugin-npm-8.52.0-a70cd5ea42-853e929bf1.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@typescript-eslint-parser-npm-8.52.0-7f2ce4b0cb-a11304db80.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@typescript-eslint-project-service-npm-8.52.0-300ac97b84-2dc7379572.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@typescript-eslint-scope-manager-npm-8.52.0-df1e126940-385105ad1b.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@typescript-eslint-tsconfig-utils-npm-8.52.0-451ec8941e-a45f6c1453.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@typescript-eslint-type-utils-npm-8.52.0-5aefa32304-c859ffd10d.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@typescript-eslint-types-npm-8.52.0-dd9057d59e-ad93803aa9.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@typescript-eslint-typescript-estree-npm-8.52.0-3ae3386e3a-e4158a6364.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@typescript-eslint-utils-npm-8.52.0-caaee0116c-67e501e8ef.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@typescript-eslint-visitor-keys-npm-8.52.0-a4de6f1d15-7163735d87.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/@vitejs-plugin-react-swc-npm-4.2.2-88f543d8c1-fe6346df26.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/abbrev-npm-4.0.0-7d848a1ef0-b4cc169352.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/acorn-jsx-npm-5.3.2-d7594599ea-4c54868fbe.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/acorn-npm-8.15.0-0764cf600e-dec73ff59b.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/agent-base-npm-7.1.4-cb8b4604d5-c2c9ab7599.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/ajv-npm-6.12.6-4b5105e2b2-41e23642cb.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/ansi-styles-npm-4.3.0-245c7d42c7-895a23929d.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/argparse-npm-2.0.1-faff7999e6-c5640c2d89.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/balanced-match-npm-1.0.2-a53c126459-9308baf0a7.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/baseline-browser-mapping-npm-2.9.12-a3339df95f-15b0ce64e5.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/brace-expansion-npm-1.1.12-329e9ad7a1-975fecac2b.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/brace-expansion-npm-2.0.2-bc7f134bbc-6d117a4c79.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/browserslist-npm-4.28.1-e455c4c2e8-545a5fa9d7.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/cacache-npm-20.0.3-5f244d5bdd-c7da1ca694.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/callsites-npm-3.1.0-268f989910-fff9227740.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/caniuse-lite-npm-1.0.30001762-10b12126b2-93707eac5b.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/chalk-npm-4.1.2-ba8b67ab80-4a3fef5cc3.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/chownr-npm-3.0.0-5275e85d25-43925b8770.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/color-convert-npm-2.0.1-79730e935b-37e1150172.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/color-name-npm-1.1.4-025792b0ea-a1a3f91415.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/concat-map-npm-0.0.1-85a921b7ee-c996b1cfdf.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/convert-source-map-npm-2.0.0-7ab664dc4e-8f2f7a27a1.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/cross-spawn-npm-7.0.6-264bddf921-053ea8b213.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/csstype-npm-3.2.3-741053244e-cd29c51e70.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/debug-npm-4.4.3-0105c6123a-d79136ec6c.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/deep-is-npm-0.1.4-88938b5a67-7f0ee496e0.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/electron-to-chromium-npm-1.5.267-b62f38d65a-0732bdb891.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/encoding-npm-0.1.13-82a1837d30-36d938712f.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/env-paths-npm-2.2.1-7c7577428c-285325677b.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/err-code-npm-2.0.3-082e0ff9a7-b642f7b4dd.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/esbuild-npm-0.27.2-7789e62c6d-cf83f626f5.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/escalade-npm-3.2.0-19b50dd48f-ced4dd3a78.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/escape-string-regexp-npm-4.0.0-4b531d8d59-9497d4dd30.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/eslint-npm-9.39.2-af6e824e47-bb88ca8fd1.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/eslint-plugin-react-hooks-npm-7.0.1-218b8cae26-1e711d1a9d.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/eslint-plugin-react-refresh-npm-0.4.26-d49c61032e-11c2b25b7a.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/eslint-scope-npm-8.4.0-8ed12feb40-407f6c6002.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/eslint-visitor-keys-npm-3.4.3-a356ac7e46-92708e882c.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/eslint-visitor-keys-npm-4.2.1-435d5be22a-fcd4399919.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/espree-npm-10.4.0-9633b00e55-c63fe06131.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/esquery-npm-1.7.0-c1e8da438a-77d5173db4.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/esrecurse-npm-4.3.0-10b86a887a-81a37116d1.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/estraverse-npm-5.3.0-03284f8f63-1ff9447b96.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/esutils-npm-2.0.3-f865beafd5-9a2fe69a41.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/exponential-backoff-npm-3.1.3-28be78d98e-77e3ae682b.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/fast-deep-equal-npm-3.1.3-790edcfcf5-40dedc862e.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/fast-json-stable-stringify-npm-2.1.0-02e8905fda-7f081eb0b8.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/fast-levenshtein-npm-2.0.6-fcd74b8df5-111972b373.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/fdir-npm-6.5.0-8814a0dec7-e345083c43.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/file-entry-cache-npm-8.0.0-5b09d19a83-9e2b5938b1.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/find-up-npm-5.0.0-e03e9b796d-062c5a83a9.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/flat-cache-npm-4.0.1-12bf2455f7-2c59d93e9f.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/flatted-npm-3.3.3-ca455563b2-e957a1c6b0.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/fs-minipass-npm-3.0.3-d148d6ac19-63e80da2ff.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/fsevents-npm-2.3.3-ce9fb0ffae-a1f0c44595.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/fsevents-patch-6b67494872-10c0.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/gensync-npm-1.0.0-beta.2-224666d72f-782aba6cba.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/glob-npm-13.0.0-8e50143ca8-8e2f5821f3.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/glob-parent-npm-6.0.2-2cbef12738-317034d886.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/globals-npm-14.0.0-5fc3d8d5da-b96ff42620.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/globals-npm-16.5.0-9e83817f44-615241dae7.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/graceful-fs-npm-4.2.11-24bb648a68-386d011a55.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/has-flag-npm-4.0.0-32af9f0536-2e789c61b7.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/hermes-estree-npm-0.25.1-d7752f3952-48be3b2fa3.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/hermes-parser-npm-0.25.1-832deac23b-3abaa4c6f1.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/http-cache-semantics-npm-4.2.0-fadacfb3ad-45b66a945c.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/http-proxy-agent-npm-7.0.2-643ed7cc33-4207b06a45.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/https-proxy-agent-npm-7.0.6-27a95c2690-f729219bc7.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/iconv-lite-npm-0.6.3-24b8aae27e-98102bc66b.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/ignore-npm-5.3.2-346d3ba017-f9f652c957.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/ignore-npm-7.0.5-dea34ee430-ae00db89fe.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/import-fresh-npm-3.3.1-1916794950-bf8cc49487.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/imurmurhash-npm-0.1.4-610c5068a0-8b51313850.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/ip-address-npm-10.1.0-d5d5693401-0103516cfa.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/is-extglob-npm-2.1.1-0870ea68b5-5487da3569.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/is-glob-npm-4.0.3-cb87bf1bdb-17fb4014e2.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/isexe-npm-2.0.0-b58870bd2e-228cfa503f.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/isexe-npm-3.1.1-9c0061eead-9ec2576540.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/js-tokens-npm-4.0.0-0ac852e9e2-e248708d37.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/js-yaml-npm-4.1.1-86ec786790-561c7d7088.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/jsesc-npm-3.1.0-2f4f998cd7-531779df5e.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/json-buffer-npm-3.0.1-f8f6d20603-0d1c91569d.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/json-schema-traverse-npm-0.4.1-4759091693-108fa90d4c.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/json-stable-stringify-without-jsonify-npm-1.0.1-b65772b28b-cb168b61fd.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/json5-npm-2.2.3-9962c55073-5a04eed948.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/keyv-npm-4.5.4-4c8e2cf7f7-aa52f3c5e1.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/levn-npm-0.4.1-d183b2d7bb-effb03cad7.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/locate-path-npm-6.0.0-06a1e4c528-d3972ab70d.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/lodash.merge-npm-4.6.2-77cb4416bf-402fa16a1e.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/lru-cache-npm-11.2.4-3f72660965-4a24f9b175.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/lru-cache-npm-5.1.1-f475882a51-89b2ef2ef4.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/make-fetch-happen-npm-15.0.3-10a832fcad-525f749156.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/minimatch-npm-10.1.1-453db4ee1a-c85d44821c.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/minimatch-npm-3.1.2-9405269906-0262810a8f.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/minimatch-npm-9.0.5-9aa93d97fa-de96cf5e35.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/minipass-collect-npm-2.0.1-73d3907e40-5167e73f62.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/minipass-fetch-npm-5.0.0-e53c2bae4c-9443aab5fe.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/minipass-flush-npm-1.0.5-efe79d9826-2a51b63feb.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/minipass-npm-3.3.6-b8d93a945b-a114746943.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/minipass-npm-7.1.2-3a5327d36d-b0fd20bb9f.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/minipass-pipeline-npm-1.2.4-5924cb077f-cbda57cea2.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/minipass-sized-npm-1.0.3-306d86f432-298f124753.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/minizlib-npm-3.1.0-6680befdba-5aad75ab00.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/ms-npm-2.1.3-81ff3cfac1-d924b57e73.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/nanoid-npm-3.3.11-f98c1f9ef6-40e7f70b3d.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/natural-compare-npm-1.4.0-97b75b362d-f5f9a7974b.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/negotiator-npm-1.0.0-47d727e27e-4c559dd526.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/node-gyp-npm-12.1.0-0690767ce9-f43efea8aa.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/node-releases-npm-2.0.27-b2d1b8de4a-f1e6583b78.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/nopt-npm-9.0.0-81316ec15c-1822eb6f9b.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/optionator-npm-0.9.4-1f114b00e8-4afb687a05.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/p-limit-npm-3.1.0-05d2ede37f-9db675949d.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/p-locate-npm-5.0.0-92cc7c7a3e-2290d627ab.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/p-map-npm-7.0.4-39386109d0-a5030935d3.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/parent-module-npm-1.0.1-1fae11b095-c63d6e8000.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/path-exists-npm-4.0.0-e9e4f63eb0-8c0bd3f523.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/path-key-npm-3.1.1-0e66ea8321-748c43efd5.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/path-scurry-npm-2.0.1-7744619e5d-2a16ed0e81.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/picocolors-npm-1.1.1-4fede47cf1-e2e3e8170a.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/picomatch-npm-4.0.3-0a647b87cc-9582c951e9.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/postcss-npm-8.5.6-e7f126c6f3-5127cc7c91.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/prelude-ls-npm-1.2.1-3e4d272a55-b00d617431.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/proc-log-npm-6.1.0-84e609b3f4-4f178d4062.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/promise-retry-npm-2.0.1-871f0b01b7-9c7045a1a2.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/punycode-npm-2.3.1-97543c420d-14f76a8206.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/react-dom-npm-19.2.3-93a2378518-dc43f7ede0.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/react-npm-19.2.3-0ecd9e5a6e-094220b3ba.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/resolve-from-npm-4.0.0-f758ec21bf-8408eec31a.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/retry-npm-0.12.0-72ac7fb4cc-59933e8501.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/rollup-npm-4.55.1-f1a4b4314a-267309f0db.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/safer-buffer-npm-2.1.2-8d5c0b705e-7e3c8b2e88.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/scheduler-npm-0.27.0-772f0dd512-4f03048cb0.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/semver-npm-6.3.1-bcba31fdbe-e3d79b6090.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/semver-npm-7.7.3-9cf7b3b46c-4afe5c9865.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/shebang-command-npm-2.0.0-eb2b01921d-a41692e7d8.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/shebang-regex-npm-3.0.0-899a0cd65e-1dbed0726d.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/smart-buffer-npm-4.2.0-5ac3f668bb-a16775323e.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/socks-npm-2.8.7-d1d20aae19-2805a43a1c.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/socks-proxy-agent-npm-8.0.5-24d77a90dc-5d2c6cecba.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/source-map-js-npm-1.2.1-b9a47d7e1a-7bda1fc4c1.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/ssri-npm-13.0.0-f5fa93375d-405f3a531c.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/strip-json-comments-npm-3.1.1-dcb2324823-9681a6257b.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/supports-color-npm-7.2.0-606bfcf7da-afb4c88521.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/tinyglobby-npm-0.2.15-0e783aadbd-869c31490d.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/ts-api-utils-npm-2.4.0-1179124e9a-ed185861ae.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/type-check-npm-0.4.0-60565800ce-7b3fd0ed43.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/typescript-eslint-npm-8.52.0-af8bf5f042-9ea293bec9.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/typescript-npm-5.9.3-48715be868-6bd7552ce3.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/typescript-patch-6fda4d02cf-ad09fdf7a7.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/undici-types-npm-7.16.0-0e23b08124-3033e2f2b5.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/unique-filename-npm-5.0.0-605f54f18e-afb897e9cf.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/unique-slug-npm-6.0.0-f26b186e99-da7ade4cb0.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/update-browserslist-db-npm-1.2.3-de1d320326-13a00355ea.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/uri-js-npm-4.4.1-66d11cbcaf-4ef57b45aa.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/vite-npm-7.3.1-330baf2f0d-5c7548f5f4.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/which-npm-2.0.2-320ddf72f7-66522872a7.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/which-npm-6.0.0-48f25f0ec8-fe9d6463fe.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/word-wrap-npm-1.2.5-42d00c4b09-e0e4a1ca27.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/yallist-npm-3.1.1-a568a556b4-c66a5c46bc.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/yallist-npm-4.0.0-b493d9e907-2286b5e8db.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/yallist-npm-5.0.0-8732dd9f1c-a499c81ce6.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/yocto-queue-npm-0.1.0-c6c9a7db29-dceb44c285.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/zod-npm-4.3.5-018a94fb5d-5a2db7e591.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/cache/zod-validation-error-npm-4.0.2-1b963160c8-0ccfec48c4.zip is excluded by !**/.yarn/**, !**/*.zip
  • agent-ui/.yarn/releases/yarn-4.12.0.cjs is excluded by !**/.yarn/**
  • agent-ui/legacy/redhat.ico is excluded by !**/*.ico
  • agent-ui/public/vite.svg is excluded by !**/*.svg
  • agent-ui/src/assets/react.svg is excluded by !**/*.svg
  • agent-ui/yarn.lock is excluded by !**/yarn.lock, !**/*.lock
📒 Files selected for processing (32)
  • Containerfile.agent
  • agent-ui-react/agent-ui-react.code-workspace
  • agent-ui/.gitattributes
  • agent-ui/.gitignore
  • agent-ui/.yarnrc.yml
  • agent-ui/README.md
  • agent-ui/agent-ui.code-workspace
  • agent-ui/eslint.config.js
  • agent-ui/index.html
  • agent-ui/legacy/css/main.css
  • agent-ui/legacy/index.html
  • agent-ui/legacy/js/commons/states.js
  • agent-ui/legacy/js/components/alert.js
  • agent-ui/legacy/js/components/download-controls.js
  • agent-ui/legacy/js/components/info.js
  • agent-ui/legacy/js/components/login-controls.js
  • agent-ui/legacy/js/components/login-form.js
  • agent-ui/legacy/js/main.js
  • agent-ui/legacy/js/store/index.js
  • agent-ui/legacy/js/store/pubsub.js
  • agent-ui/legacy/js/store/store.js
  • agent-ui/legacy/js/views/form.js
  • agent-ui/legacy/js/views/observable.js
  • agent-ui/package.json
  • agent-ui/src/App.css
  • agent-ui/src/App.tsx
  • agent-ui/src/index.css
  • agent-ui/src/main.tsx
  • agent-ui/tsconfig.app.json
  • agent-ui/tsconfig.json
  • agent-ui/tsconfig.node.json
  • agent-ui/vite.config.ts
🧰 Additional context used
🪛 Biome (2.1.2)
agent-ui/src/App.tsx

[error] 12-12: Avoid using target="_blank" without rel="noopener" or rel="noreferrer".

Opening external links in new tabs without rel="noopener" is a security risk. See the explanation for more details.
Safe fix: Add the rel="noopener" attribute.

(lint/security/noBlankTarget)


[error] 15-15: Avoid using target="_blank" without rel="noopener" or rel="noreferrer".

Opening external links in new tabs without rel="noopener" is a security risk. See the explanation for more details.
Safe fix: Add the rel="noopener" attribute.

(lint/security/noBlankTarget)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
  • GitHub Check: test
  • GitHub Check: unit-test
  • GitHub Check: lint
  • GitHub Check: check-generate
🔇 Additional comments (16)
agent-ui/.gitattributes (1)

1-4: LGTM! Standard Yarn PnP Git attributes.

This configuration correctly marks Yarn artifacts as vendored and binary, which is standard for Yarn 4 with Plug'n'Play.

agent-ui/src/App.css (1)

1-42: LGTM! Standard Vite + React template CSS.

This boilerplate CSS provides basic styling for the starter template and is appropriate for the development environment setup.

agent-ui/src/index.css (1)

1-68: LGTM!

This is standard Vite template CSS providing sensible defaults for typography, layout, and theming. The dark/light mode support and accessibility considerations (focus states) are well-implemented.

agent-ui/.gitignore (1)

1-39: LGTM!

The .gitignore configuration is comprehensive and follows best practices for Yarn v4 projects with zero-installs enabled. The selective unignoring of Yarn directories (patches, plugins, releases, sdks, versions) and .vscode/extensions.json is appropriate.

agent-ui/README.md (1)

1-73: LGTM!

The documentation is comprehensive and helpful, providing clear guidance on:

  • Available Vite plugins for React
  • React Compiler compatibility constraints with SWC
  • Advanced ESLint configuration options for production applications

The examples reference the correct TypeScript configuration files (tsconfig.node.json, tsconfig.app.json) that are part of this PR.

agent-ui/eslint.config.js (2)

8-23: No changes needed. The configuration is correct and compatible with ESLint 9.39.1. The defineConfig() and globalIgnores() utilities are official ESLint flat-config helpers from eslint/config (introduced in ESLint 9.22.0) and represent the standard, recommended approach for configuring ESLint 9.x with flat config format.

Likely an incorrect or invalid review comment.


6-6: No action needed. The import import { defineConfig, globalIgnores } from 'eslint/config' is the standard, documented way to configure ESLint 9.39.1 with the flat config API. Both defineConfig and globalIgnores are official exports from the eslint/config module, as shown in ESLint's official configuration documentation. The code correctly uses these utilities as intended.

agent-ui/.yarnrc.yml (1)

1-5: Yarn 4.12.0 is the current latest stable version and has no known vulnerabilities.

The Yarn configuration is appropriate and up-to-date. Yarn 4.12.0 (released November 23, 2025) is the latest stable release in the Yarn 4.x (Berry) line, and there are no public security advisories affecting this version. Known vulnerabilities in older CVEs only apply to Yarn Classic (1.x), not Berry.

agent-ui/src/main.tsx (1)

1-10: LGTM! Standard React 19 entry point.

The code correctly uses createRoot from react-dom/client and wraps the application in StrictMode, following React 19 best practices.

agent-ui/src/App.tsx (1)

6-7: LGTM! Correct React 19 hook usage.

The useState hook is properly imported and used, following React 19 conventions.

Containerfile.agent (1)

7-7: LGTM! Correctly updated to serve legacy UI.

The path change from ./agent-ui/* to ./agent-ui/legacy/* correctly aligns with the PR's goal of isolating the legacy vanilla JavaScript UI while the new React+TypeScript UI is being developed.

agent-ui/tsconfig.json (1)

1-7: LGTM! Standard TypeScript project references configuration.

The empty files array with project references is the correct pattern for multi-configuration TypeScript setups, delegating compilation to tsconfig.app.json (application code) and tsconfig.node.json (build tooling).

agent-ui/tsconfig.node.json (1)

1-26: LGTM!

The TypeScript configuration for the Node/bundler environment is well-structured and appropriate for Vite. The settings align with the app config and use modern TypeScript features consistently.

Note: Ensure the TypeScript version supports the compiler options (as mentioned in the review of tsconfig.app.json).

agent-ui/index.html (2)

1-13: React bootstrap structure looks good.

The HTML structure correctly bootstraps a React SPA using Vite. The minimal shell with a root div and module script loading is the standard pattern for modern React applications.


5-5: Referenced assets exist and are correctly configured.

Both /vite.svg (located at agent-ui/public/vite.svg) and /src/main.tsx (located at agent-ui/src/main.tsx) are present in the project. The paths in the HTML follow standard Vite conventions where public directory assets are served at the root and source files are referenced directly.

agent-ui/tsconfig.app.json (1)

23-25: TypeScript version supports these compiler options.

The project uses TypeScript ~5.9.3, which exceeds the minimum requirements for both erasableSyntaxOnly (5.5+) and noUncheckedSideEffectImports (5.7+). No action needed.

@jkilzi jkilzi force-pushed the ECOPROJECT-3737 branch 3 times, most recently from fbf3bc8 to 7619fcd Compare January 13, 2026 10:24
Adds the UI dev environment to allow porting the Agent UI from vanilla javaScript to React+TS

Signed-off-by: Jonathan Kilzi [email protected]
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Fix all issues with AI agents
In `@agent-ui/src/App.tsx`:
- Around line 21-23: The button element in App.tsx (the JSX using setCount and
count) lacks an explicit type, which can cause accidental form submission if
this component is later used inside a form; update the JSX button to include
type="button" to explicitly prevent default submit behavior while keeping the
onClick that calls setCount((count) => count + 1).

In `@agent-ui/src/index.css`:
- Around line 52-55: The focus rule using the webkit-only value should be made
cross-browser: update the button:focus and button:focus-visible styling to
provide a non-webkit fallback (e.g., explicit color like a system highlight or
rgba value) and/or add a visible box-shadow alternative so Firefox and other
browsers render the focus ring; modify the selectors for the existing rule
(button:focus, button:focus-visible) and replace the -webkit-focus-ring-color
usage with a fallback color and/or box-shadow-based outline implementation to
ensure consistent focus indication across browsers.
♻️ Duplicate comments (2)
agent-ui/agent-ui.code-workspace (1)

10-12: Remove unused styled-components.vscode-styled-components extension recommendation.

The styled-components VSCode extension is recommended but the project doesn't use styled-components - it uses plain CSS. This extension recommendation should be removed to avoid confusion.

♻️ Proposed fix
 	"extensions": {
 		"recommendations": [
 			"esbenp.prettier-vscode",
 			"dbaeumer.vscode-eslint",
-			"styled-components.vscode-styled-components",
 		]
 	}
agent-ui/package.json (1)

1-31: Package configuration is well-structured for React + TypeScript + Vite.

The package manifest correctly sets up the development environment with:

  • Modern tooling (Vite 7.x, TypeScript 5.9.x, ESLint 9.x)
  • React 19.x with proper type definitions
  • Yarn 4.x as the package manager

Regarding the previously flagged React CVE-2025-55182: since ^19.2.0 allows patch updates and the author confirmed the versions are safe, ensure yarn.lock pins React/react-dom to 19.2.1 or later.

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 1b68828 and 51f13a0.

⛔ Files ignored due to path filters (232)
  • agent-ui/.yarn/cache/@babel-code-frame-npm-7.27.1-4dbcabb137-5dd9a18baa.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@babel-compat-data-npm-7.28.5-41f8d327e8-702a25de73.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@babel-core-npm-7.28.5-cd68c2d8db-535f822380.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@babel-generator-npm-7.28.5-fd8f3ae6b1-9f219fe1d5.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@babel-helper-compilation-targets-npm-7.27.2-111dda04b6-f338fa00dc.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@babel-helper-globals-npm-7.28.0-8d79c12faf-5a0cd0c0e8.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@babel-helper-module-imports-npm-7.27.1-3bf33978f4-e00aace096.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@babel-helper-module-transforms-npm-7.28.3-7b69ec189a-549be62515.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@babel-helper-string-parser-npm-7.27.1-d1471e0598-8bda3448e0.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@babel-helper-validator-identifier-npm-7.28.5-1953d49d2b-42aaebed91.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@babel-helper-validator-option-npm-7.27.1-7c563f0423-6fec5f006e.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@babel-helpers-npm-7.28.4-d9f7567704-aaa5fb8098.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@babel-parser-npm-7.28.5-f2345a6b62-5bbe48bf2c.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@babel-template-npm-7.27.2-77e67eabbd-ed9e902265.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@babel-traverse-npm-7.28.5-2b51d83636-f6c4a59599.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@babel-types-npm-7.28.5-582d7cca8a-a5a483d210.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@esbuild-darwin-arm64-npm-0.27.2-d675c4a521-10c0.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@eslint-community-eslint-utils-npm-4.9.1-30ad3d49de-dc4ab5e3e3.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@eslint-community-regexpp-npm-4.12.2-3d54624470-fddcbc6685.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@eslint-config-array-npm-0.21.1-c33ed9ec91-2f657d4edd.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@eslint-config-helpers-npm-0.4.2-a55655f805-92efd7a527.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@eslint-core-npm-0.17.0-8579df04c4-9a580f2246.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@eslint-eslintrc-npm-3.3.3-8ccf6281a3-532c7acc7d.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@eslint-js-npm-9.39.2-c8e5f9bf73-00f51c52b0.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@eslint-object-schema-npm-2.1.7-cb962a5b9b-936b6e4998.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@eslint-plugin-kit-npm-0.4.1-3df70dd079-51600f78b7.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@humanfs-core-npm-0.19.1-e2e7aaeb6e-aa4e015217.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@humanfs-node-npm-0.16.7-fa16bdb590-9f83d3cf2c.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@humanwhocodes-module-importer-npm-1.0.1-9d07ed2e4a-909b69c3b8.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@humanwhocodes-retry-npm-0.4.3-a8d7ca1663-3775bb3008.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@isaacs-balanced-match-npm-4.0.1-8965afafe6-7da011805b.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@isaacs-brace-expansion-npm-5.0.0-754d3cb3f5-b4d4812f4b.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@isaacs-fs-minipass-npm-4.0.1-677026e841-c25b6dc159.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@jridgewell-gen-mapping-npm-0.3.13-9bd96ac800-9a7d65fb13.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@jridgewell-remapping-npm-2.3.5-df8dacc063-3de494219f.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@jridgewell-resolve-uri-npm-3.1.2-5bc4245992-d502e6fb51.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@jridgewell-sourcemap-codec-npm-1.5.5-5189d9fc79-f9e538f302.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@jridgewell-trace-mapping-npm-0.3.31-1ae81d75ac-4b30ec8cd5.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@npmcli-agent-npm-4.0.0-502e5ae4f0-f7b5ce0f3d.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@npmcli-fs-npm-5.0.0-9d737ae2f3-26e376d780.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@rolldown-pluginutils-npm-1.0.0-beta.47-a120edadda-eb0cfa7334.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@rollup-rollup-darwin-arm64-npm-4.55.1-16138f7e16-10c0.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@swc-core-darwin-arm64-npm-1.15.8-126f9f1524-10c0.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@swc-core-npm-1.15.8-73471b3117-929f334a22.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@swc-counter-npm-0.1.3-ce42b0e3f5-8424f60f6b.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@swc-types-npm-0.1.25-8a74ae00bc-847a5b20b1.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@types-estree-npm-1.0.8-2195bac6d6-39d34d1afa.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@types-json-schema-npm-7.0.15-fd16381786-a996a745e6.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@types-node-npm-24.10.4-7db9e6df3a-069639cb72.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@types-react-dom-npm-19.2.3-1b243fa1cb-b486ebe0f4.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@types-react-npm-19.2.7-2ae71602b6-a7b75f1f9f.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@typescript-eslint-eslint-plugin-npm-8.52.0-a70cd5ea42-853e929bf1.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@typescript-eslint-parser-npm-8.52.0-7f2ce4b0cb-a11304db80.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@typescript-eslint-project-service-npm-8.52.0-300ac97b84-2dc7379572.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@typescript-eslint-scope-manager-npm-8.52.0-df1e126940-385105ad1b.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@typescript-eslint-tsconfig-utils-npm-8.52.0-451ec8941e-a45f6c1453.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@typescript-eslint-type-utils-npm-8.52.0-5aefa32304-c859ffd10d.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@typescript-eslint-types-npm-8.52.0-dd9057d59e-ad93803aa9.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@typescript-eslint-typescript-estree-npm-8.52.0-3ae3386e3a-e4158a6364.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@typescript-eslint-utils-npm-8.52.0-caaee0116c-67e501e8ef.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@typescript-eslint-visitor-keys-npm-8.52.0-a4de6f1d15-7163735d87.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/@vitejs-plugin-react-swc-npm-4.2.2-88f543d8c1-fe6346df26.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/abbrev-npm-4.0.0-7d848a1ef0-b4cc169352.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/acorn-jsx-npm-5.3.2-d7594599ea-4c54868fbe.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/acorn-npm-8.15.0-0764cf600e-dec73ff59b.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/agent-base-npm-7.1.4-cb8b4604d5-c2c9ab7599.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/ajv-npm-6.12.6-4b5105e2b2-41e23642cb.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/ansi-styles-npm-4.3.0-245c7d42c7-895a23929d.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/argparse-npm-2.0.1-faff7999e6-c5640c2d89.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/balanced-match-npm-1.0.2-a53c126459-9308baf0a7.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/baseline-browser-mapping-npm-2.9.12-a3339df95f-15b0ce64e5.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/brace-expansion-npm-1.1.12-329e9ad7a1-975fecac2b.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/brace-expansion-npm-2.0.2-bc7f134bbc-6d117a4c79.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/browserslist-npm-4.28.1-e455c4c2e8-545a5fa9d7.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/cacache-npm-20.0.3-5f244d5bdd-c7da1ca694.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/callsites-npm-3.1.0-268f989910-fff9227740.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/caniuse-lite-npm-1.0.30001762-10b12126b2-93707eac5b.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/chalk-npm-4.1.2-ba8b67ab80-4a3fef5cc3.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/chownr-npm-3.0.0-5275e85d25-43925b8770.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/color-convert-npm-2.0.1-79730e935b-37e1150172.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/color-name-npm-1.1.4-025792b0ea-a1a3f91415.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/concat-map-npm-0.0.1-85a921b7ee-c996b1cfdf.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/convert-source-map-npm-2.0.0-7ab664dc4e-8f2f7a27a1.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/cross-spawn-npm-7.0.6-264bddf921-053ea8b213.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/csstype-npm-3.2.3-741053244e-cd29c51e70.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/debug-npm-4.4.3-0105c6123a-d79136ec6c.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/deep-is-npm-0.1.4-88938b5a67-7f0ee496e0.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/electron-to-chromium-npm-1.5.267-b62f38d65a-0732bdb891.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/encoding-npm-0.1.13-82a1837d30-36d938712f.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/env-paths-npm-2.2.1-7c7577428c-285325677b.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/err-code-npm-2.0.3-082e0ff9a7-b642f7b4dd.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/esbuild-npm-0.27.2-7789e62c6d-cf83f626f5.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/escalade-npm-3.2.0-19b50dd48f-ced4dd3a78.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/escape-string-regexp-npm-4.0.0-4b531d8d59-9497d4dd30.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/eslint-npm-9.39.2-af6e824e47-bb88ca8fd1.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/eslint-plugin-react-hooks-npm-7.0.1-218b8cae26-1e711d1a9d.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/eslint-plugin-react-refresh-npm-0.4.26-d49c61032e-11c2b25b7a.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/eslint-scope-npm-8.4.0-8ed12feb40-407f6c6002.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/eslint-visitor-keys-npm-3.4.3-a356ac7e46-92708e882c.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/eslint-visitor-keys-npm-4.2.1-435d5be22a-fcd4399919.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/espree-npm-10.4.0-9633b00e55-c63fe06131.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/esquery-npm-1.7.0-c1e8da438a-77d5173db4.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/esrecurse-npm-4.3.0-10b86a887a-81a37116d1.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/estraverse-npm-5.3.0-03284f8f63-1ff9447b96.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/esutils-npm-2.0.3-f865beafd5-9a2fe69a41.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/exponential-backoff-npm-3.1.3-28be78d98e-77e3ae682b.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/fast-deep-equal-npm-3.1.3-790edcfcf5-40dedc862e.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/fast-json-stable-stringify-npm-2.1.0-02e8905fda-7f081eb0b8.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/fast-levenshtein-npm-2.0.6-fcd74b8df5-111972b373.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/fdir-npm-6.5.0-8814a0dec7-e345083c43.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/file-entry-cache-npm-8.0.0-5b09d19a83-9e2b5938b1.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/find-up-npm-5.0.0-e03e9b796d-062c5a83a9.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/flat-cache-npm-4.0.1-12bf2455f7-2c59d93e9f.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/flatted-npm-3.3.3-ca455563b2-e957a1c6b0.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/fs-minipass-npm-3.0.3-d148d6ac19-63e80da2ff.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/fsevents-npm-2.3.3-ce9fb0ffae-a1f0c44595.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/fsevents-patch-6b67494872-10c0.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/gensync-npm-1.0.0-beta.2-224666d72f-782aba6cba.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/glob-npm-13.0.0-8e50143ca8-8e2f5821f3.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/glob-parent-npm-6.0.2-2cbef12738-317034d886.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/globals-npm-14.0.0-5fc3d8d5da-b96ff42620.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/globals-npm-16.5.0-9e83817f44-615241dae7.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/graceful-fs-npm-4.2.11-24bb648a68-386d011a55.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/has-flag-npm-4.0.0-32af9f0536-2e789c61b7.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/hermes-estree-npm-0.25.1-d7752f3952-48be3b2fa3.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/hermes-parser-npm-0.25.1-832deac23b-3abaa4c6f1.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/http-cache-semantics-npm-4.2.0-fadacfb3ad-45b66a945c.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/http-proxy-agent-npm-7.0.2-643ed7cc33-4207b06a45.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/https-proxy-agent-npm-7.0.6-27a95c2690-f729219bc7.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/iconv-lite-npm-0.6.3-24b8aae27e-98102bc66b.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/ignore-npm-5.3.2-346d3ba017-f9f652c957.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/ignore-npm-7.0.5-dea34ee430-ae00db89fe.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/import-fresh-npm-3.3.1-1916794950-bf8cc49487.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/imurmurhash-npm-0.1.4-610c5068a0-8b51313850.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/ip-address-npm-10.1.0-d5d5693401-0103516cfa.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/is-extglob-npm-2.1.1-0870ea68b5-5487da3569.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/is-glob-npm-4.0.3-cb87bf1bdb-17fb4014e2.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/isexe-npm-2.0.0-b58870bd2e-228cfa503f.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/isexe-npm-3.1.1-9c0061eead-9ec2576540.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/js-tokens-npm-4.0.0-0ac852e9e2-e248708d37.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/js-yaml-npm-4.1.1-86ec786790-561c7d7088.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/jsesc-npm-3.1.0-2f4f998cd7-531779df5e.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/json-buffer-npm-3.0.1-f8f6d20603-0d1c91569d.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/json-schema-traverse-npm-0.4.1-4759091693-108fa90d4c.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/json-stable-stringify-without-jsonify-npm-1.0.1-b65772b28b-cb168b61fd.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/json5-npm-2.2.3-9962c55073-5a04eed948.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/keyv-npm-4.5.4-4c8e2cf7f7-aa52f3c5e1.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/levn-npm-0.4.1-d183b2d7bb-effb03cad7.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/locate-path-npm-6.0.0-06a1e4c528-d3972ab70d.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/lodash.merge-npm-4.6.2-77cb4416bf-402fa16a1e.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/lru-cache-npm-11.2.4-3f72660965-4a24f9b175.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/lru-cache-npm-5.1.1-f475882a51-89b2ef2ef4.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/make-fetch-happen-npm-15.0.3-10a832fcad-525f749156.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/minimatch-npm-10.1.1-453db4ee1a-c85d44821c.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/minimatch-npm-3.1.2-9405269906-0262810a8f.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/minimatch-npm-9.0.5-9aa93d97fa-de96cf5e35.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/minipass-collect-npm-2.0.1-73d3907e40-5167e73f62.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/minipass-fetch-npm-5.0.0-e53c2bae4c-9443aab5fe.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/minipass-flush-npm-1.0.5-efe79d9826-2a51b63feb.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/minipass-npm-3.3.6-b8d93a945b-a114746943.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/minipass-npm-7.1.2-3a5327d36d-b0fd20bb9f.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/minipass-pipeline-npm-1.2.4-5924cb077f-cbda57cea2.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/minipass-sized-npm-1.0.3-306d86f432-298f124753.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/minizlib-npm-3.1.0-6680befdba-5aad75ab00.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/ms-npm-2.1.3-81ff3cfac1-d924b57e73.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/nanoid-npm-3.3.11-f98c1f9ef6-40e7f70b3d.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/natural-compare-npm-1.4.0-97b75b362d-f5f9a7974b.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/negotiator-npm-1.0.0-47d727e27e-4c559dd526.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/node-gyp-npm-12.1.0-0690767ce9-f43efea8aa.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/node-releases-npm-2.0.27-b2d1b8de4a-f1e6583b78.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/nopt-npm-9.0.0-81316ec15c-1822eb6f9b.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/optionator-npm-0.9.4-1f114b00e8-4afb687a05.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/p-limit-npm-3.1.0-05d2ede37f-9db675949d.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/p-locate-npm-5.0.0-92cc7c7a3e-2290d627ab.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/p-map-npm-7.0.4-39386109d0-a5030935d3.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/parent-module-npm-1.0.1-1fae11b095-c63d6e8000.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/path-exists-npm-4.0.0-e9e4f63eb0-8c0bd3f523.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/path-key-npm-3.1.1-0e66ea8321-748c43efd5.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/path-scurry-npm-2.0.1-7744619e5d-2a16ed0e81.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/picocolors-npm-1.1.1-4fede47cf1-e2e3e8170a.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/picomatch-npm-4.0.3-0a647b87cc-9582c951e9.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/postcss-npm-8.5.6-e7f126c6f3-5127cc7c91.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/prelude-ls-npm-1.2.1-3e4d272a55-b00d617431.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/proc-log-npm-6.1.0-84e609b3f4-4f178d4062.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/promise-retry-npm-2.0.1-871f0b01b7-9c7045a1a2.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/punycode-npm-2.3.1-97543c420d-14f76a8206.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/react-dom-npm-19.2.3-93a2378518-dc43f7ede0.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/react-npm-19.2.3-0ecd9e5a6e-094220b3ba.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/resolve-from-npm-4.0.0-f758ec21bf-8408eec31a.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/retry-npm-0.12.0-72ac7fb4cc-59933e8501.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/rollup-npm-4.55.1-f1a4b4314a-267309f0db.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/safer-buffer-npm-2.1.2-8d5c0b705e-7e3c8b2e88.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/scheduler-npm-0.27.0-772f0dd512-4f03048cb0.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/semver-npm-6.3.1-bcba31fdbe-e3d79b6090.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/semver-npm-7.7.3-9cf7b3b46c-4afe5c9865.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/shebang-command-npm-2.0.0-eb2b01921d-a41692e7d8.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/shebang-regex-npm-3.0.0-899a0cd65e-1dbed0726d.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/smart-buffer-npm-4.2.0-5ac3f668bb-a16775323e.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/socks-npm-2.8.7-d1d20aae19-2805a43a1c.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/socks-proxy-agent-npm-8.0.5-24d77a90dc-5d2c6cecba.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/source-map-js-npm-1.2.1-b9a47d7e1a-7bda1fc4c1.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/ssri-npm-13.0.0-f5fa93375d-405f3a531c.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/strip-json-comments-npm-3.1.1-dcb2324823-9681a6257b.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/supports-color-npm-7.2.0-606bfcf7da-afb4c88521.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/tar-npm-7.5.2-6d8cfb7a13-a7d8b80113.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/tinyglobby-npm-0.2.15-0e783aadbd-869c31490d.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/ts-api-utils-npm-2.4.0-1179124e9a-ed185861ae.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/type-check-npm-0.4.0-60565800ce-7b3fd0ed43.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/typescript-eslint-npm-8.52.0-af8bf5f042-9ea293bec9.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/typescript-npm-5.9.3-48715be868-6bd7552ce3.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/typescript-patch-6fda4d02cf-ad09fdf7a7.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/undici-types-npm-7.16.0-0e23b08124-3033e2f2b5.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/unique-filename-npm-5.0.0-605f54f18e-afb897e9cf.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/unique-slug-npm-6.0.0-f26b186e99-da7ade4cb0.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/update-browserslist-db-npm-1.2.3-de1d320326-13a00355ea.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/uri-js-npm-4.4.1-66d11cbcaf-4ef57b45aa.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/vite-npm-7.3.1-330baf2f0d-5c7548f5f4.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/which-npm-2.0.2-320ddf72f7-66522872a7.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/which-npm-6.0.0-48f25f0ec8-fe9d6463fe.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/word-wrap-npm-1.2.5-42d00c4b09-e0e4a1ca27.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/yallist-npm-3.1.1-a568a556b4-c66a5c46bc.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/yallist-npm-4.0.0-b493d9e907-2286b5e8db.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/yallist-npm-5.0.0-8732dd9f1c-a499c81ce6.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/yocto-queue-npm-0.1.0-c6c9a7db29-dceb44c285.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/zod-npm-4.3.5-018a94fb5d-5a2db7e591.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/cache/zod-validation-error-npm-4.0.2-1b963160c8-0ccfec48c4.zip is excluded by !**/.yarn/**, !**/*.zip, !**/*.zip
  • agent-ui/.yarn/releases/yarn-4.12.0.cjs is excluded by !**/.yarn/**
  • agent-ui/README.md is excluded by !**/*.md
  • agent-ui/legacy/redhat.ico is excluded by !**/*.ico
  • agent-ui/public/vite.svg is excluded by !**/*.svg
  • agent-ui/src/assets/react.svg is excluded by !**/*.svg
  • agent-ui/yarn.lock is excluded by !**/yarn.lock, !**/*.lock, !**/*.lock
📒 Files selected for processing (30)
  • Containerfile.agent
  • agent-ui/.gitattributes
  • agent-ui/.gitignore
  • agent-ui/.yarnrc.yml
  • agent-ui/agent-ui.code-workspace
  • agent-ui/eslint.config.js
  • agent-ui/index.html
  • agent-ui/legacy/css/main.css
  • agent-ui/legacy/index.html
  • agent-ui/legacy/js/commons/states.js
  • agent-ui/legacy/js/components/alert.js
  • agent-ui/legacy/js/components/download-controls.js
  • agent-ui/legacy/js/components/info.js
  • agent-ui/legacy/js/components/login-controls.js
  • agent-ui/legacy/js/components/login-form.js
  • agent-ui/legacy/js/main.js
  • agent-ui/legacy/js/store/index.js
  • agent-ui/legacy/js/store/pubsub.js
  • agent-ui/legacy/js/store/store.js
  • agent-ui/legacy/js/views/form.js
  • agent-ui/legacy/js/views/observable.js
  • agent-ui/package.json
  • agent-ui/src/App.css
  • agent-ui/src/App.tsx
  • agent-ui/src/index.css
  • agent-ui/src/main.tsx
  • agent-ui/tsconfig.app.json
  • agent-ui/tsconfig.json
  • agent-ui/tsconfig.node.json
  • agent-ui/vite.config.ts
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2026-01-13T10:13:13.804Z
Learnt from: jkilzi
Repo: kubev2v/migration-planner PR: 825
File: agent-ui/agent-ui.code-workspace:8-14
Timestamp: 2026-01-13T10:13:13.804Z
Learning: VSCode workspace files (*.code-workspace) use JSONC (JSON with Comments). They allow comments and trailing commas. Do not flag trailing commas or comments as syntax errors in these files; treat them as valid JSONC. If validating syntax, ensure the validator supports JSONC or explicitly skip strict JSON validation for .code-workspace files.

Applied to files:

  • agent-ui/agent-ui.code-workspace
🪛 Biome (2.1.2)
agent-ui/src/App.tsx

[error] 12-12: Avoid using target="_blank" without rel="noopener" or rel="noreferrer".

Opening external links in new tabs without rel="noopener" is a security risk. See the explanation for more details.
Safe fix: Add the rel="noopener" attribute.

(lint/security/noBlankTarget)


[error] 15-15: Avoid using target="_blank" without rel="noopener" or rel="noreferrer".

Opening external links in new tabs without rel="noopener" is a security risk. See the explanation for more details.
Safe fix: Add the rel="noopener" attribute.

(lint/security/noBlankTarget)


[error] 21-21: Provide an explicit type prop for the button element.

The default type of a button is submit, which causes the submission of a form when placed inside a form element. This is likely not the behaviour that you want inside a React application.
Allowed button types are: submit, button or reset

(lint/a11y/useButtonType)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
  • GitHub Check: unit-test
  • GitHub Check: lint
  • GitHub Check: check-generate
  • GitHub Check: test
🔇 Additional comments (12)
agent-ui/.gitattributes (1)

1-4: LGTM!

Standard Yarn 4 gitattributes configuration that correctly marks vendored directories and binary files for proper Git handling and GitHub language statistics.

agent-ui/src/App.css (1)

1-42: LGTM!

Standard Vite + React template CSS with good accessibility practices - the prefers-reduced-motion media query appropriately gates the logo animation for users who prefer reduced motion.

agent-ui/.gitignore (1)

1-39: LGTM!

Comprehensive gitignore configuration correctly handling Yarn 4 zero-installs (keeping .yarn/cache tracked), Vite build outputs, and standard editor/IDE artifacts.

agent-ui/legacy/index.html (1)

1-57: Legacy HTML structure is well-organized.

The static HTML page preserves the existing Migration Discovery VM interface with PatternFly styling. The structure with empty form-container and btn-container divs allows for dynamic content injection via main.js.

Note: Previously identified issues (title mismatch at line 8, PatternFly v5/v6 class inconsistency at lines 31, 48) were acknowledged and deferred per author's request.

Containerfile.agent (1)

7-7: LGTM!

The change correctly narrows the copy scope to only include the legacy static assets (./agent-ui/legacy/*), excluding the new React development environment files from the container image. This aligns with the PR's intent to set up a separate dev environment while preserving the existing deployment behavior.

agent-ui/.yarnrc.yml (1)

1-5: LGTM!

The Yarn 4 configuration is sensible:

  • nodeLinker: node-modules ensures compatibility with tools that don't support Plug'n'Play
  • enableGlobalCache: false provides project isolation
  • yarnPath pins the exact Yarn version, matching packageManager in package.json

The Yarn release binary is properly committed and the .gitignore configuration correctly whitelists it along with the cache for zero-installs support.

agent-ui/src/main.tsx (1)

1-10: LGTM! Standard React 19 entry point.

This is the correct pattern for bootstrapping a React 19 application with createRoot and StrictMode. The non-null assertion on getElementById('root') is acceptable here since the HTML template is controlled and expected to always contain the root element.

agent-ui/tsconfig.json (1)

1-7: LGTM! Proper multi-project TypeScript setup.

The root tsconfig correctly uses project references to separate the app configuration from Node/tooling configuration. The empty files array ensures this root config delegates all compilation to the referenced projects.

agent-ui/src/index.css (1)

1-68: Good baseline styling with light/dark mode support.

The global styles provide a solid foundation with system font stack, responsive color scheme support via prefers-color-scheme, and accessible focus states.

agent-ui/vite.config.ts (1)

1-7: LGTM! Minimal Vite configuration with React SWC plugin.

The configuration correctly sets up Vite with the SWC-based React plugin for fast refresh and efficient builds.

agent-ui/tsconfig.app.json (1)

1-28: Well-configured TypeScript settings for Vite + React.

The configuration appropriately uses bundler module resolution, React JSX transform, and strict linting options. The noEmit: true correctly delegates bundling to Vite. The erasableSyntaxOnly option is compatible with the project's TypeScript 5.9.3 version.

agent-ui/tsconfig.node.json (1)

1-26: Configuration looks appropriate for Vite + TypeScript setup.

The bundler-mode settings (moduleResolution: "bundler", allowImportingTsExtensions, verbatimModuleSyntax) are well-suited for a Vite project. The strict linting options will help maintain code quality.

The compiler options used require TypeScript 5.6+ (noUncheckedSideEffectImports) and TypeScript 5.8+ (erasableSyntaxOnly). The project's TypeScript version (5.9.3) fully supports these options, so there are no compatibility concerns.

✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.

Comment on lines +21 to +23
<button onClick={() => setCount((count) => count + 1)}>
count is {count}
</button>
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick | 🔵 Trivial

Consider adding explicit type="button" to prevent default submit behavior.

The button lacks an explicit type attribute. While not critical here since there's no enclosing form, adding type="button" is a good practice to prevent unintended form submission if this component is later used within a form context.

♻️ Proposed fix
-        <button onClick={() => setCount((count) => count + 1)}>
+        <button type="button" onClick={() => setCount((count) => count + 1)}>
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
<button onClick={() => setCount((count) => count + 1)}>
count is {count}
</button>
<button type="button" onClick={() => setCount((count) => count + 1)}>
count is {count}
</button>
🧰 Tools
🪛 Biome (2.1.2)

[error] 21-21: Provide an explicit type prop for the button element.

The default type of a button is submit, which causes the submission of a form when placed inside a form element. This is likely not the behaviour that you want inside a React application.
Allowed button types are: submit, button or reset

(lint/a11y/useButtonType)

🤖 Prompt for AI Agents
In `@agent-ui/src/App.tsx` around lines 21 - 23, The button element in App.tsx
(the JSX using setCount and count) lacks an explicit type, which can cause
accidental form submission if this component is later used inside a form; update
the JSX button to include type="button" to explicitly prevent default submit
behavior while keeping the onClick that calls setCount((count) => count + 1).

Comment on lines +52 to +55
button:focus,
button:focus-visible {
outline: 4px auto -webkit-focus-ring-color;
}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick | 🔵 Trivial

Consider cross-browser focus styling.

The -webkit-focus-ring-color is a webkit-specific value. While this works in Chrome/Safari, Firefox and other browsers may not render a visible focus ring.

♻️ Suggested improvement for broader browser support
 button:focus,
 button:focus-visible {
-  outline: 4px auto -webkit-focus-ring-color;
+  outline: 2px solid `#646cff`;
+  outline-offset: 2px;
 }
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
button:focus,
button:focus-visible {
outline: 4px auto -webkit-focus-ring-color;
}
button:focus,
button:focus-visible {
outline: 2px solid `#646cff`;
outline-offset: 2px;
}
🤖 Prompt for AI Agents
In `@agent-ui/src/index.css` around lines 52 - 55, The focus rule using the
webkit-only value should be made cross-browser: update the button:focus and
button:focus-visible styling to provide a non-webkit fallback (e.g., explicit
color like a system highlight or rgba value) and/or add a visible box-shadow
alternative so Firefox and other browsers render the focus ring; modify the
selectors for the existing rule (button:focus, button:focus-visible) and replace
the -webkit-focus-ring-color usage with a fallback color and/or box-shadow-based
outline implementation to ensure consistent focus indication across browsers.

@tupyy
Copy link
Collaborator

tupyy commented Jan 15, 2026

/approve

@openshift-ci
Copy link

openshift-ci bot commented Jan 15, 2026

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: tupyy

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants