Skip to content

Eviltester/issue23#24

Merged
eviltester merged 27 commits into
masterfrom
eviltester/issue23
Apr 30, 2026
Merged

Eviltester/issue23#24
eviltester merged 27 commits into
masterfrom
eviltester/issue23

Conversation

@eviltester

Copy link
Copy Markdown
Owner

Closes #23

Copilot AI review requested due to automatic review settings April 29, 2026 12:31

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Restructures the project into an npm-workspaces monorepo and introduces reusable “core” generation functionality that is consumed by a new Node CLI package, a REST API app, and an MCP stdio server, with Docker support for the API/MCP apps.

Changes:

  • Add @anywaydata/core with generateFromTextSpec plus initial Node test coverage.
  • Add @anywaydata/cli, @anywaydata/api (Express + OpenAPI + options endpoints), and @anywaydata/mcp (JSON-RPC over stdio) that consume the core.
  • Convert repo to npm workspaces, add Dockerfiles/compose, and update CI/scripts to run workspace verification.

Reviewed changes

Copilot reviewed 27 out of 28 changed files in this pull request and generated 12 comments.

Show a summary per file
File Description
packages/core/tests/generateFromTextSpec.test.js Adds node:test coverage for new core generator API.
packages/core/src/index.js Implements generateFromTextSpec + supported formats export.
packages/core/package.json Defines publishable @anywaydata/core workspace package metadata/scripts.
packages/cli/src/index.js New Node CLI wrapper around @anywaydata/core.
packages/cli/package.json Defines publishable @anywaydata/cli workspace package metadata/scripts.
package.json Enables npm workspaces; expands lint/format scope; adds verify/test workspace scripts.
package-lock.json Updates lockfile for workspaces and new dependencies/apps.
docker-compose.yml Adds compose setup for API + MCP builds.
apps/mcp/src/mcp.test.js Adds node:test coverage for MCP JSON-RPC tool listing/calls.
apps/mcp/src/index.js Implements MCP server over stdio calling generateFromTextSpec.
apps/mcp/package.json Defines publishable @anywaydata/mcp workspace package metadata/scripts.
apps/mcp/Dockerfile Docker build/runtime image for MCP server.
apps/api/src/startup.test.js Adds tests for API port parsing and startup fallback behavior.
apps/api/src/options.route.test.js Adds tests for options/tips endpoints and option-default behavior.
apps/api/src/openapi.js Adds OpenAPI document for REST API endpoints.
apps/api/src/index.js Implements Express REST API + OpenAPI/Swagger UI + option default storage.
apps/api/src/generate.route.test.js Adds tests for /v1/generate response formats and error handling.
apps/api/src/fromschema.route.test.js Adds tests for /v1/generate/fromschema text/plain behavior.
apps/api/src/docs.route.test.js Adds tests for /openapi.json and /docs.
apps/api/package.json Defines publishable @anywaydata/api workspace package metadata/scripts.
apps/api/Dockerfile Docker build/runtime image for REST API server.
README.md Documents workspaces, CLI/API/MCP usage, Docker, and publishing flow.
AGENTS.md Adds local verification expectations (npm run verify:local).
.husky/pre-push Adds pre-push hook to run verify:local.
.github/workflows/node.js.yml Updates CI to Node 20 and runs verify:ci.
.dockerignore Adds dockerignore for node_modules, coverage, build outputs, etc.
.changeset/config.json Adds Changesets config for workspace versioning/publishing.
.changeset/README.md Adds Changesets usage documentation.

Comment thread packages/core/src/index.js Outdated
Comment thread packages/core/src/index.js Outdated
Comment thread packages/core/package.json
Comment thread packages/cli/package.json Outdated
Comment thread apps/api/src/index.js
Comment thread packages/core/src/index.js Outdated
Comment thread apps/api/package.json Outdated
Comment thread apps/mcp/package.json Outdated
Comment thread apps/api/src/index.js Outdated
Comment thread apps/mcp/src/index.js Outdated
Comment thread .github/workflows/cli-deploy.yml Fixed
Comment thread packages/core/js/data_formats/gherkin-convertor.js Fixed

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 157 out of 175 changed files in this pull request and generated 4 comments.

Comment thread packages/core/js/libs/ascii-table3/printable-characters.js
Comment thread packages/core/js/grid/importer.js
Comment thread packages/core/js/data_generation/rulesParser.js
Comment thread packages/core/js/data_generation/testDataRules.js
@coderabbitai

coderabbitai Bot commented Apr 30, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 196 files, which is 46 over the limit of 150.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 402a6f0c-54d9-464c-b2a5-bd85b80ae50d

📥 Commits

Reviewing files that changed from the base of the PR and between 639aa1c and 383c850.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (196)
  • .babelrc
  • .changeset/README.md
  • .changeset/config.json
  • .dockerignore
  • .eslintignore
  • .github/workflows/cli-deploy.yml
  • .github/workflows/node.js.yml
  • .husky/pre-push
  • AGENTS.md
  • README.md
  • app.html
  • apps/api/CHANGELOG.md
  • apps/api/Dockerfile
  • apps/api/package.json
  • apps/api/src/docs.route.test.js
  • apps/api/src/fromschema.route.test.js
  • apps/api/src/generate.route.test.js
  • apps/api/src/index.js
  • apps/api/src/openapi.js
  • apps/api/src/options.route.test.js
  • apps/api/src/startup.test.js
  • apps/mcp/CHANGELOG.md
  • apps/mcp/Dockerfile
  • apps/mcp/package.json
  • apps/mcp/src/index.js
  • apps/mcp/src/interop.test.js
  • apps/mcp/src/mcp.test.js
  • apps/web/Dockerfile
  • babel.config.cjs
  • cli/src/command.ts
  • docker-compose.yml
  • generator.html
  • index.html
  • package.json
  • packages/cli/CHANGELOG.md
  • packages/cli/package.json
  • packages/cli/src/index.js
  • packages/core-ui/js/generator-script.js
  • packages/core-ui/js/grid/guarded-column-edits.js
  • packages/core-ui/js/gui_components/data-generator-page.js
  • packages/core-ui/js/gui_components/data-grid-editor/ag-grid/customHeader-ag-grid.js
  • packages/core-ui/js/gui_components/data-grid-editor/ag-grid/gridExtension-ag-grid.js
  • packages/core-ui/js/gui_components/data-grid-editor/ag-grid/main-display-grid.js
  • packages/core-ui/js/gui_components/data-grid-editor/ag-grid/select-filter-editor.js
  • packages/core-ui/js/gui_components/data-grid-editor/grid-engine.js
  • packages/core-ui/js/gui_components/data-grid-editor/grid-library-loader.js
  • packages/core-ui/js/gui_components/data-grid-editor/gridControl.js
  • packages/core-ui/js/gui_components/data-grid-editor/main-display-grid.js
  • packages/core-ui/js/gui_components/data-grid-editor/tabulator/customHeader-tabulator.js
  • packages/core-ui/js/gui_components/data-grid-editor/tabulator/gridExtension-tabulator.js
  • packages/core-ui/js/gui_components/data-grid-editor/tabulator/guarded-tabulator-column-edits.js
  • packages/core-ui/js/gui_components/data-grid-editor/tabulator/main-display-grid.js
  • packages/core-ui/js/gui_components/data-grid-editor/tabulator/tabulator-helpers.js
  • packages/core-ui/js/gui_components/download.js
  • packages/core-ui/js/gui_components/drag-drop-control.js
  • packages/core-ui/js/gui_components/exportControls.js
  • packages/core-ui/js/gui_components/faker-command-help-metadata.js
  • packages/core-ui/js/gui_components/faker-commands.js
  • packages/core-ui/js/gui_components/import-export-controls.js
  • packages/core-ui/js/gui_components/options_panels/html-options-data-utils.js
  • packages/core-ui/js/gui_components/options_panels/options-ascii-table.js
  • packages/core-ui/js/gui_components/options_panels/options-csv-delimited-controls.js
  • packages/core-ui/js/gui_components/options_panels/options-delimited-controls.js
  • packages/core-ui/js/gui_components/options_panels/options-gherkin-panel.js
  • packages/core-ui/js/gui_components/options_panels/options-html-panel.js
  • packages/core-ui/js/gui_components/options_panels/options-java-panel.js
  • packages/core-ui/js/gui_components/options_panels/options-javascript-panel.js
  • packages/core-ui/js/gui_components/options_panels/options-json-panel.js
  • packages/core-ui/js/gui_components/options_panels/options-markdown-panel.js
  • packages/core-ui/js/gui_components/options_panels/options-python-panel.js
  • packages/core-ui/js/gui_components/options_panels/options-sql-panel.js
  • packages/core-ui/js/gui_components/options_panels/options-typescript-panel.js
  • packages/core-ui/js/gui_components/options_panels/options-xml-panel.js
  • packages/core-ui/js/gui_components/tabbed-text-control.js
  • packages/core-ui/js/gui_components/test-data-amend.js
  • packages/core-ui/js/gui_components/testdatadefn.js
  • packages/core-ui/js/help/help-tooltips.js
  • packages/core-ui/js/help/inline-help-content.js
  • packages/core-ui/js/script.js
  • packages/core-ui/package.json
  • packages/core-ui/src/index.js
  • packages/core/js/data_formats/asciitable-convertor.js
  • packages/core/js/data_formats/csv-convertor.js
  • packages/core/js/data_formats/delimiter-convertor.js
  • packages/core/js/data_formats/delimiter-options.js
  • packages/core/js/data_formats/dsv-exporter.js
  • packages/core/js/data_formats/file-types.js
  • packages/core/js/data_formats/generic-data-table-utils.js
  • packages/core/js/data_formats/generic-data-table.js
  • packages/core/js/data_formats/gherkin-convertor.js
  • packages/core/js/data_formats/html-convertor.js
  • packages/core/js/data_formats/java-convertor.js
  • packages/core/js/data_formats/javascript-convertor.js
  • packages/core/js/data_formats/json-convertor.js
  • packages/core/js/data_formats/markdown-convertor.js
  • packages/core/js/data_formats/python-convertor.js
  • packages/core/js/data_formats/sql-convertor.js
  • packages/core/js/data_formats/typescript-convertor.js
  • packages/core/js/data_formats/xml-convertor.js
  • packages/core/js/data_generation/faker/fakerCommand.js
  • packages/core/js/data_generation/faker/fakerCommandRunner.js
  • packages/core/js/data_generation/faker/fakerTestDataGenerator.js
  • packages/core/js/data_generation/faker/fakerTestDataRuleValidator.js
  • packages/core/js/data_generation/faker/parsingUtils.js
  • packages/core/js/data_generation/literal/literalTestDataGenerator.js
  • packages/core/js/data_generation/regex/regexTestDataGenerator.js
  • packages/core/js/data_generation/regex/regexTestDataRuleValidator.js
  • packages/core/js/data_generation/ruleResponse.js
  • packages/core/js/data_generation/rulesBasedDataGenerator.js
  • packages/core/js/data_generation/rulesParser.js
  • packages/core/js/data_generation/testDataGenerator.js
  • packages/core/js/data_generation/testDataRule.js
  • packages/core/js/data_generation/testDataRules.js
  • packages/core/js/data_generation/testDataRulesCompiler.js
  • packages/core/js/faker/faker-command-help-metadata.js
  • packages/core/js/faker/faker-commands.js
  • packages/core/js/grid/exporter.js
  • packages/core/js/grid/importer.js
  • packages/core/js/libs/ascii-table3/ascii-table3-styles.js
  • packages/core/js/libs/ascii-table3/ascii-table3.js
  • packages/core/js/libs/ascii-table3/printable-characters.js
  • packages/core/js/utils/debouncer.js
  • packages/core/js/utils/number-convertor.js
  • packages/core/js/utils/papawrappa.js
  • packages/core/package.json
  • packages/core/src/index.js
  • packages/core/tests/generateFromTextSpec.test.js
  • scripts/generate-faker-help.js
  • test_results.txt
  • tests/data_formats/csv-convertor.test.js
  • tests/data_formats/delimiter-convertor.test.js
  • tests/data_formats/dsv-exporter.test.js
  • tests/data_formats/generic-data-table-utils.test.js
  • tests/data_formats/generic-data-table.test.js
  • tests/data_formats/gherkin-convertor.test.js
  • tests/data_formats/html-convertor.test.js
  • tests/data_formats/java-convertor.test.js
  • tests/data_formats/javascript-convertor.test.js
  • tests/data_formats/json-convertor.test.js
  • tests/data_formats/markdown-convertor.test.js
  • tests/data_formats/python-convertor.test.js
  • tests/data_formats/sql-convertor.test.js
  • tests/data_formats/typescript-convertor.test.js
  • tests/data_formats/xml-convertor.test.js
  • tests/data_generation/generateDataFromFakerSpec.test.js
  • tests/data_generation/generateDataFromMultiLineSpec.test.js
  • tests/data_generation/unit/faker/fakerCommand.test.js
  • tests/data_generation/unit/faker/fakerTestDataGenerator.test.js
  • tests/data_generation/unit/faker/fakerTestDataRuleValidator.test.js
  • tests/data_generation/unit/faker/parsingUtils.test.js
  • tests/data_generation/unit/rulesParser.test.js
  • tests/data_generation/unit/testDataRules-collection.test.js
  • tests/data_generation/unit/testDataRules.test.js
  • tests/generator/data-generator-page.test.js
  • tests/generator/generator-script.test.js
  • tests/grid/ag-grid-main-display-grid.test.js
  • tests/grid/exporter.test.js
  • tests/grid/grid-control.test.js
  • tests/grid/grid-extension-parity.test.js
  • tests/grid/guarded-column-edits.test.js
  • tests/grid/importer.test.js
  • tests/grid/main-display-grid-selection.test.js
  • tests/grid/tabulator-main-display-grid.test.js
  • tests/grid/tabulator-performance.benchmark.test.js
  • tests/grid/test-data-defn-engine-compat.test.js
  • tests/grid/testdatadefn-faker-dropdown-literals.test.js
  • tests/script-bootstrap.test.js
  • tests/script-module-init.test.js
  • tests/utils/debouncer.test.js
  • tests/utils/download.test.js
  • tests/utils/drag-drop-control.test.js
  • tests/utils/export-controls.test.js
  • tests/utils/faker-command-help-metadata.test.js
  • tests/utils/grid-engine.test.js
  • tests/utils/grid-library-loader.test.js
  • tests/utils/help-content-coverage.test.js
  • tests/utils/help-tooltips.test.js
  • tests/utils/html-options-data-utils.test.js
  • tests/utils/import-export-controls-mode.test.js
  • tests/utils/number-converter.test.js
  • tests/utils/options-ascii-table.test.js
  • tests/utils/options-csv-delimited-controls.test.js
  • tests/utils/options-delimited-controls.test.js
  • tests/utils/options-gherkin-panel.test.js
  • tests/utils/options-html-panel.test.js
  • tests/utils/options-java-panel.test.js
  • tests/utils/options-javascript-panel.test.js
  • tests/utils/options-json-panel.test.js
  • tests/utils/options-markdown-panel.test.js
  • tests/utils/options-python-panel.test.js
  • tests/utils/options-sql-panel.test.js
  • tests/utils/options-typescript-panel.test.js
  • tests/utils/options-xml-panel.test.js
  • tests/utils/papawrappa.test.js
  • tests/utils/tabbed-text-control-mode.test.js
  • tests/utils/test-data-amend.test.js

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch eviltester/issue23

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

@eviltester
eviltester merged commit 7e4956a into master Apr 30, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

restructure to have core in CLI, API and MCP and from Docker

3 participants