Skip to content
| Marketplace
Sign in
Visual Studio Code>Testing>QAira Repository IntelligenceNew to Visual Studio Code? Get it now.
QAira Repository Intelligence

QAira Repository Intelligence

Qualipal

|
1 install
| (0) | Free
Split API and WebUI generation for QAira Repository Intelligence with Docker runtime, accurate application-route filtering, stable WebUI page objects, and protected imports with 200-entry-safe WebUI object repository batching.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

QAira Repository Intelligence

Run the QAira Semantic Compiler Docker image from VS Code and generate repository-grounded test assets.

This extension does not bundle the Python agents. Docker performs the heavy repository analysis. VS Code provides the developer UX, secure key storage, split commands, output handling, and protected QAira imports.

Default image:

jayarajumetta/semantic-compiler:latest

Commands

  • QAira: Generate API Tests

    • Runs Docker with QAIRA_TEST_TYPE=api.
    • Generates API contracts, Postman collection, QAira API test payloads, traces, reports.
  • QAira: Generate WebUI Pages

    • Runs Docker with QAIRA_TEST_TYPE=webui.
    • Generates QSG graph, HTML page locator JSON, Playwright locator modules, Page Object class files, WebUI specs, traces, reports.
  • QAira: Generate API + WebUI

    • Runs Docker with QAIRA_TEST_TYPE=both.
    • API pipeline first, then WebUI/QSG pipeline.
  • QAira: Configure OPENAI_API_KEY

    • Stores OPENAI_API_KEY securely in VS Code SecretStorage.
    • Passed to Docker as -e OPENAI_API_KEY=<secret>.
  • QAira: Configure Runtime Paths

    • Configures output and learning directories.
    • Optional config path is blank by default. Leave blank to auto-use config/config.yml if it exists.
  • QAira: Configure Import

    • Configures API test import, WebUI page import, auth mode, app type, endpoints, and secure credentials.
  • QAira: Import API Tests

    • Converts generated postman_collection.json into QAira import payload and sends it to QAira.
  • QAira: Generate WebUI Class Files

    • Converts generated WebUI locator JSON into per-page Playwright Page Object class files and specs.
  • QAira: Import WebUI Pages

    • Builds a WebUI pages import payload including locator JSON, Page Object class TS, and smoke spec TS.
  • QAira: Open Output Directory

  • QAira: Show Status

  • QAira: Clear Stored Secrets

Runtime behavior

For QAira: Generate API Tests, the extension runs effectively:

docker run --rm \
  -e PYTHONUNBUFFERED=1 \
  -e QAIRA_TEST_TYPE=api \
  -e OPENAI_API_KEY="$OPENAI_API_KEY" \
  -v "$WORKSPACE:/workspace/source:ro" \
  -v "$WORKSPACE/qaira-output:/output" \
  -v "$WORKSPACE/qaira-learning:/learning" \
  jayarajumetta/semantic-compiler:latest

For WebUI:

docker run --rm \
  -e PYTHONUNBUFFERED=1 \
  -e QAIRA_TEST_TYPE=webui \
  -e OPENAI_API_KEY="$OPENAI_API_KEY" \
  -v "$WORKSPACE:/workspace/source:ro" \
  -v "$WORKSPACE/qaira-output:/output" \
  -v "$WORKSPACE/qaira-learning:/learning" \
  jayarajumetta/semantic-compiler:latest

For both:

docker run --rm \
  -e PYTHONUNBUFFERED=1 \
  -e QAIRA_TEST_TYPE=both \
  -e OPENAI_API_KEY="$OPENAI_API_KEY" \
  -v "$WORKSPACE:/workspace/source:ro" \
  -v "$WORKSPACE/qaira-output:/output" \
  -v "$WORKSPACE/qaira-learning:/learning" \
  jayarajumetta/semantic-compiler:latest

If <workspace>/config/config.yml exists, it is mounted as:

-v "$WORKSPACE/config/config.yml:/config/config.yml:ro" \
-e QAIRA_CONFIG=/config/config.yml

If qaira.configPath is set, that custom config file overrides the default workspace config path.

Settings

Only runtime/import settings are exposed. Git options are intentionally not exposed in the extension.

{
  "qaira.outputDir": "qaira-output",
  "qaira.learningDir": "qaira-learning",
  "qaira.configPath": "",
  "qaira.import.apiTests.enabled": false,
  "qaira.import.webuiPages.enabled": false,
  "qaira.import.apiTestsUrl": "http://localhost:8080/api/test-cases/import",
  "qaira.import.webuiPagesUrl": "http://localhost:8080/api/test-cases/automation/learning-cache/import",
  "qaira.import.appTypeId": "a2",
  "qaira.import.authMode": "x-api-key",
  "qaira.import.baseUrl": "",
  "qaira.import.confirmBeforeSending": true
}

Secret storage

These are stored securely using VS Code SecretStorage:

  • OPENAI_API_KEY
  • QAira x-api-key
  • QAira bearer token

They are not written into settings.json, config.yml, generated curl files, or output artifacts.

Outputs

Common traces:

qaira-output/verbose/trace.jsonl
qaira-output/runtime/agent_progress.jsonl
qaira-output/runtime/phase_progress.jsonl
qaira-output/runtime/agent_results.jsonl
qaira-output/runtime/execution_plan.json
qaira-output/runtime/orchestrator_report.json
qaira-output/runtime/final_run_report.json
qaira-output/runtime/artifact_manifest.json

API outputs:

qaira-output/generated/postman_collection.json
qaira-output/generated/qaira_tests.json
qaira-output/generated/openapi.json
qaira-output/generated/api_test_generation_trace.json
qaira-output/final/final_test_generation_report.json
qaira-output/qaira-import/api-test-cases-import-payload.json
qaira-output/qaira-import/import-api-test-cases.curl.sh
qaira-output/qaira-import/api-import-response.json

WebUI outputs:

qaira-output/graph/qsg.sqlite
qaira-output/graph/qsg.json
qaira-output/graph/qsg_summary.json
qaira-output/generated/html_page_locators.json
qaira-output/generated/playwright_locators.js
qaira-output/generated/webui/html_page_locators.nested.json
qaira-output/generated/webui/html_page_locators.csv
qaira-output/generated/webui/index.json
qaira-output/generated/webui/pages.ts
qaira-output/generated/webui/pages/<page-slug>/locators.json
qaira-output/generated/webui/pages/<page-slug>/<page-slug>.page.ts
qaira-output/generated/webui/pages/<page-slug>/<page-slug>.spec.ts
qaira-output/qaira-import/webui-pages-import-payload.json
qaira-output/qaira-import/import-webui-pages.curl.sh
qaira-output/qaira-import/webui-pages-import-response.json

Build and install locally

npm install
npm run lint
npm run package

Then install the generated .vsix through VS Code:

Extensions → ... → Install from VSIX...

Or, if the code command is installed:

code --install-extension qaira-repository-intelligence-1.1.0.vsix

July 2026 update — WebUI Object Repository import

QAira: Import WebUI Pages now imports generated WebUI locators into QAira's automation learning cache / object repository endpoint:

POST /api/test-cases/automation/learning-cache/import

The extension creates and sends:

{
  "app_type_id": "<configured app type id>",
  "import_source": "or_file_import",
  "entries": []
}

It also writes:

qaira-output/generated/webui/object_repository_import.csv
qaira-output/generated/webui/object_repository_import_payload.json
qaira-output/qaira-import/webui-object-repository-import-payload.json
qaira-output/qaira-import/webui-object-repository-import.csv

The CSV has one screen row and stable/actionable locator field rows per screen. Pseudo/TODO locators are not imported.

1.3.1 WebUI Object Repository batching fix

QAira: Import WebUI Pages now respects the QAira backend limit of 200 repository entries per request.

The extension still writes the complete payload and CSV for traceability:

  • qaira-output/qaira-import/webui-object-repository-import-payload.json
  • qaira-output/qaira-import/webui-object-repository-import.csv

It also writes batch-safe artifacts:

  • qaira-output/qaira-import/webui-object-repository-import-manifest.json
  • qaira-output/qaira-import/webui-object-repository-batches/batch-001.json
  • qaira-output/qaira-import/webui-object-repository-batches/batch-001.curl.sh
  • qaira-output/qaira-import/import-webui-object-repository.curl.sh
  • qaira-output/qaira-import/webui-object-repository-import-response.json

Each request sent to /api/test-cases/automation/learning-cache/import contains at most 200 entries. If a screen has more than 199 fields, the screen record is repeated in subsequent batches so the backend can still associate fields with the screen.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft