From 4633c9e90ff017ccbeaabef02d1c15cf5074b93a Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 15 Jan 2026 02:55:05 +0000 Subject: [PATCH 1/7] Initial plan From 3ed856d11bf2a72abe00f2e2e90dcf217eab28b9 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 15 Jan 2026 03:21:30 +0000 Subject: [PATCH 2/7] Remove UI-related packages, commands, and documentation Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com> --- docs/guide/architecture/overview.md | 34 - docs/guide/architecture/why-objectql.md | 54 - docs/guide/cli.md | 258 ---- docs/guide/configuration.md | 44 - docs/guide/data-modeling.md | 154 --- docs/guide/drivers/extensibility.md | 178 --- .../drivers/implementing-custom-driver.md | 552 --------- docs/guide/drivers/index.md | 62 - docs/guide/drivers/mongo.md | 154 --- docs/guide/drivers/sql.md | 127 -- docs/guide/formulas-and-rules-quick-ref.md | 275 ----- docs/guide/formulas-and-rules.md | 690 ----------- docs/guide/getting-started.md | 158 --- docs/guide/ide-setup.md | 24 - docs/guide/index.md | 69 -- docs/guide/license.md | 64 - docs/guide/logic-actions.md | 199 ---- docs/guide/logic-hooks.md | 184 --- docs/guide/metadata-organization.md | 365 ------ docs/guide/microservices.md | 61 - docs/guide/migration-id-field.md | 294 ----- docs/guide/page-metadata.md | 671 ----------- docs/guide/plugins.md | 249 ---- docs/guide/querying.md | 195 --- docs/guide/server-integration.md | 114 -- docs/spec/form.md | 1046 ----------------- docs/spec/menu.md | 771 ------------ docs/spec/page.md | 467 -------- docs/spec/report.md | 789 ------------- docs/spec/view.md | 416 ------- examples/browser/README.md | 154 --- examples/browser/example-node.ts | 86 -- examples/browser/index.html | 519 -------- package.json | 1 - packages/foundation/core/src/ai-agent.ts | 46 +- packages/runtime/server/src/index.ts | 1 - packages/runtime/server/src/studio.ts | 164 --- packages/tools/cli/package.json | 1 - packages/tools/cli/src/commands/ai.ts | 7 +- packages/tools/cli/src/commands/new.ts | 52 - packages/tools/cli/src/commands/studio.ts | 354 ------ packages/tools/cli/src/index.ts | 17 - packages/tools/studio/CHANGELOG.md | 89 -- packages/tools/studio/README.md | 47 - packages/tools/studio/index.html | 12 - packages/tools/studio/package.json | 47 - packages/tools/studio/postcss.config.cjs | 6 - packages/tools/studio/src/App.css | 308 ----- packages/tools/studio/src/App.tsx | 36 - .../tools/studio/src/components/DataGrid.tsx | 227 ---- .../studio/src/components/FileEditor.tsx | 95 -- .../studio/src/components/ObjectList.tsx | 137 --- .../studio/src/components/RecordDetail.tsx | 229 ---- .../studio/src/components/SchemaInspector.tsx | 207 ---- .../tools/studio/src/components/Sidebar.tsx | 128 -- .../tools/studio/src/components/ui/button.tsx | 60 - .../tools/studio/src/components/ui/card.tsx | 76 -- .../tools/studio/src/hooks/use-metadata.ts | 39 - packages/tools/studio/src/index.css | 59 - packages/tools/studio/src/lib/utils.ts | 6 - packages/tools/studio/src/main.tsx | 10 - packages/tools/studio/src/pages/Dashboard.tsx | 36 - .../studio/src/pages/MetadataBrowser.tsx | 214 ---- .../tools/studio/src/pages/ObjectView.tsx | 264 ----- .../tools/studio/src/pages/SchemaEditor.tsx | 85 -- packages/tools/studio/tailwind.config.cjs | 77 -- packages/tools/studio/tsconfig.json | 25 - packages/tools/studio/vite.config.ts | 26 - 68 files changed, 13 insertions(+), 12652 deletions(-) delete mode 100644 docs/guide/architecture/overview.md delete mode 100644 docs/guide/architecture/why-objectql.md delete mode 100644 docs/guide/cli.md delete mode 100644 docs/guide/configuration.md delete mode 100644 docs/guide/data-modeling.md delete mode 100644 docs/guide/drivers/extensibility.md delete mode 100644 docs/guide/drivers/implementing-custom-driver.md delete mode 100644 docs/guide/drivers/index.md delete mode 100644 docs/guide/drivers/mongo.md delete mode 100644 docs/guide/drivers/sql.md delete mode 100644 docs/guide/formulas-and-rules-quick-ref.md delete mode 100644 docs/guide/formulas-and-rules.md delete mode 100644 docs/guide/getting-started.md delete mode 100644 docs/guide/ide-setup.md delete mode 100644 docs/guide/index.md delete mode 100644 docs/guide/license.md delete mode 100644 docs/guide/logic-actions.md delete mode 100644 docs/guide/logic-hooks.md delete mode 100644 docs/guide/metadata-organization.md delete mode 100644 docs/guide/microservices.md delete mode 100644 docs/guide/migration-id-field.md delete mode 100644 docs/guide/page-metadata.md delete mode 100644 docs/guide/plugins.md delete mode 100644 docs/guide/querying.md delete mode 100644 docs/guide/server-integration.md delete mode 100644 docs/spec/form.md delete mode 100644 docs/spec/menu.md delete mode 100644 docs/spec/page.md delete mode 100644 docs/spec/report.md delete mode 100644 docs/spec/view.md delete mode 100644 examples/browser/README.md delete mode 100644 examples/browser/example-node.ts delete mode 100644 examples/browser/index.html delete mode 100644 packages/runtime/server/src/studio.ts delete mode 100644 packages/tools/cli/src/commands/studio.ts delete mode 100644 packages/tools/studio/CHANGELOG.md delete mode 100644 packages/tools/studio/README.md delete mode 100644 packages/tools/studio/index.html delete mode 100644 packages/tools/studio/package.json delete mode 100644 packages/tools/studio/postcss.config.cjs delete mode 100644 packages/tools/studio/src/App.css delete mode 100644 packages/tools/studio/src/App.tsx delete mode 100644 packages/tools/studio/src/components/DataGrid.tsx delete mode 100644 packages/tools/studio/src/components/FileEditor.tsx delete mode 100644 packages/tools/studio/src/components/ObjectList.tsx delete mode 100644 packages/tools/studio/src/components/RecordDetail.tsx delete mode 100644 packages/tools/studio/src/components/SchemaInspector.tsx delete mode 100644 packages/tools/studio/src/components/Sidebar.tsx delete mode 100644 packages/tools/studio/src/components/ui/button.tsx delete mode 100644 packages/tools/studio/src/components/ui/card.tsx delete mode 100644 packages/tools/studio/src/hooks/use-metadata.ts delete mode 100644 packages/tools/studio/src/index.css delete mode 100644 packages/tools/studio/src/lib/utils.ts delete mode 100644 packages/tools/studio/src/main.tsx delete mode 100644 packages/tools/studio/src/pages/Dashboard.tsx delete mode 100644 packages/tools/studio/src/pages/MetadataBrowser.tsx delete mode 100644 packages/tools/studio/src/pages/ObjectView.tsx delete mode 100644 packages/tools/studio/src/pages/SchemaEditor.tsx delete mode 100644 packages/tools/studio/tailwind.config.cjs delete mode 100644 packages/tools/studio/tsconfig.json delete mode 100644 packages/tools/studio/vite.config.ts diff --git a/docs/guide/architecture/overview.md b/docs/guide/architecture/overview.md deleted file mode 100644 index c6d750a8..00000000 --- a/docs/guide/architecture/overview.md +++ /dev/null @@ -1,34 +0,0 @@ -# Architecture & Concepts - -ObjectQL is built with a modular architecture that separates the data definition (Metadata) from the execution engine (Driver). This design allows applications to run on different database stacks (SQL vs NoSQL) without changing the business logic. - -## High-Level Overview - -An ObjectQL application consists of three main layers: - -1. **Metadata Layer**: JSON/YAML files that define the shape of your data (`.object.yml`) and operations. -2. **Core Engine**: The `ObjectQL` class that loads metadata, validates requests, and orchestrates execution. -3. **Driver Layer**: Adapters that translate ObjectQL requests into database-specific queries (SQL, Mongo Protocol, etc.). - -## Dependency Graph - -The project is structured as a monorepo with strict dependency rules to ensure scalability and maintainability. - -* **`@objectql/types`**: The shared contract. Contains all interfaces (`ObjectConfig`, `ObjectQLDriver`). Has **zero dependencies**. -* **`@objectql/core`**: The main runtime. It depends on `types`. -* **`@objectql/driver-*`**: Database adapters. They implement interfaces from `types` but do **not** depend on `core` (avoiding circular dependencies). - -## Core Concepts - -### 1. Metadata-First -In traditional ORMs (like TypeORM or Prisma), you define classes/schema in code. In ObjectQL, the schema is data itself. This allows: -* Dynamic schema generation at runtime. -* Building "No-Code" table designers. -* Hot-reloading of data structure without recompiling. - -### 2. Universal Protocol -ObjectQL uses a unified JSON-based query language (AST). This allows frontends, AI agents, or external systems to send complex queries (`filters`, `expand`, `aggregates`) in a safe, serializable format. - -### 3. Logic: Actions & Hooks -* **Hooks**: Intercept standard CRUD operations (e.g., "Before Create", "After Update") to enforce business rules. -* **Actions**: Define custom RPC methods (e.g., "Approve Invoice") exposed via the API. diff --git a/docs/guide/architecture/why-objectql.md b/docs/guide/architecture/why-objectql.md deleted file mode 100644 index d6af4b7a..00000000 --- a/docs/guide/architecture/why-objectql.md +++ /dev/null @@ -1,54 +0,0 @@ -# Why ObjectQL? - -In the era of AI automation, the requirements for backend infrastructure have shifted. We are no longer just building for human users on web forms; we are building systems that **AI Agents** need to read, understand, and manipulate. - -## The Problem with Traditional ORMs - -Tools like TypeORM, Prisma, or Sequelize are fantastic for human developers. They rely heavily on: -1. **Complex TypeScript Types**: Great for IDE autocomplete, but invisible to an LLM running in a production execution environment. -2. **Chained Method Calls**: `db.users.where(...).include(...)`. This requires the AI to synthesize valid executable code, which is prone to syntax errors and hallucinations. -3. **Code-First Schema**: The schema is buried in class definitions, making it hard to extract a simple "map" of the data for the AI context window. - -## The ObjectQL Solution: Protocol-First - -ObjectQL treats **Logic as Data**. - -### 1. Schema is JSON (The Context) -Instead of parsing TypeScript files, an AI Agent can simply read a JSON definition. This is the native tongue of LLMs. - -```json -{ - "name": "contact", - "fields": { "email": { "type": "text", "required": true } } -} -``` - -This compact format fits perfectly in RAG (Retrieval-Augmented Generation) contexts. - -### 2. Queries are ASTs (The Action) -To fetch data, the AI doesn't need to write SQL or function code. It generates a JSON object (Abstract Syntax Tree). - -```json -{ - "op": "find", - "from": "contact", - "filters": [["email", "contains", "@gmail.com"]] -} -``` -* **Safe**: No SQL Injection possible. The Driver handles escaping. -* **Deterministic**: It either parses or it fails. No subtle logic bugs from misplaced parentheses in code. -* **Portability**: The same JSON runs on Mongo, Postgres, or a REST API. - -## Comparison - -| Feature | Traditional ORM | ObjectQL | -| :--- | :--- | :--- | -| **Schema Definition** | TypeScript Classes / Migration Files | JSON / YAML Metadata | -| **Query Language** | Fluent API / Raw SQL | JSON AST | -| **Runtime** | Node.js / Python Runtime | Universal Protocol (Any Language) | -| **AI Friendliness** | Low (Requires Code Gen) | High (Requires JSON Gen) | -| **Dynamic Fields** | Hard (Migration required) | Native (Metadata-driven) | - -## Conclusion - -If you are building a Copilot, an Autonomous Agent, or a Low-Code platform, ObjectQL provides the structured, safe, and descriptive layer that connects your LLM to your database. diff --git a/docs/guide/cli.md b/docs/guide/cli.md deleted file mode 100644 index b5f13237..00000000 --- a/docs/guide/cli.md +++ /dev/null @@ -1,258 +0,0 @@ -# CLI Guide - -The ObjectQL CLI (`@objectql/cli`) is an essential tool for development, automating tasks like type generation and database migrations. - -## 1. Installation - -The CLI is typically installed as a dev dependency in your project. - -```bash -npm install -D @objectql/cli -``` - -You can then run it via `npx objectql` or add scripts to your `package.json`. - -## 2. Core Commands - -### 2.1 `init` (Create Project) - -Create a new ObjectQL project from a starter template. - -```bash -npx objectql init [options] -``` - -**Options:** - -| Option | Alias | Default | Description | -| :--- | :--- | :--- | :--- | -| `--template