Skip to content

Commit f42dcfa

Browse files
authored
Merge pull request #106 from objectstack-ai/copilot/remove-packages-ui
2 parents d8b3a4f + 5f847d9 commit f42dcfa

File tree

175 files changed

+497
-16329
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

175 files changed

+497
-16329
lines changed

.github/WORKFLOWS.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,6 @@ This document describes all GitHub Actions workflows and automation configured f
106106
**Labels Applied:**
107107
- `kernel` - Changes in `packages/kernel/**`
108108
- `server` - Changes in `packages/server/**`
109-
- `ui` - Changes in `packages/ui/**`
110109
- `presets` - Changes in `packages/presets/**`
111110
- `documentation` - Changes in docs or markdown files
112111
- `workflows` - Changes in `.github/**`

.github/labeler.yml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,6 @@
1010
- changed-files:
1111
- any-glob-to-any-file: 'packages/server/**/*'
1212

13-
'ui':
14-
- changed-files:
15-
- any-glob-to-any-file: 'packages/ui/**/*'
16-
1713
'presets':
1814
- changed-files:
1915
- any-glob-to-any-file: 'packages/presets/**/*'

.github/labels.yml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,6 @@ labels:
1111
color: '0366d6'
1212
description: 'Changes in @objectos/server package'
1313

14-
- name: ui
15-
color: '0366d6'
16-
description: 'Changes in @objectos/ui package'
17-
1814
- name: presets
1915
color: '0366d6'
2016
description: 'Changes in preset packages'

ARCHITECTURE.md

Lines changed: 4 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ ObjectOS is a **metadata-driven runtime engine** that transforms declarative YAM
66

77
## Protocol Foundation: @objectstack/spec
88

9-
ObjectOS is built on the **[@objectstack/spec](https://www.npmjs.com/package/@objectstack/spec)** protocol, which defines the "DNA" of the ObjectStack ecosystem. The spec provides:
9+
ObjectOS is built on the **[@objectstack/spec](https://github.com/objectstack-ai/spec)** protocol, which defines the "DNA" of the ObjectStack ecosystem. The spec provides:
1010

1111
### 1. **Strict Type Definitions**
1212
- **Zod Schemas**: Runtime validation for configuration and data
@@ -36,7 +36,7 @@ All ObjectOS plugins must conform to this lifecycle for consistency and predicta
3636
## The Three-Repository Model
3737

3838
### @objectstack/spec (Protocol Definition)
39-
- **Location**: https://www.npmjs.com/package/@objectstack/spec
39+
- **Location**: https://github.com/objectstack-ai/spec
4040
- **Purpose**: Defines the protocol and type contracts
4141
- **Key Exports**:
4242
- `Data.*` - Object schemas, field types, queries
@@ -60,7 +60,6 @@ All ObjectOS plugins must conform to this lifecycle for consistency and predicta
6060
- **Key Packages**:
6161
- `@objectos/kernel` - Core execution engine
6262
- `@objectos/server` - HTTP API layer
63-
- `@objectos/ui` - React UI components
6463

6564
## Core Architectural Principle
6665

@@ -302,41 +301,9 @@ export class ObjectDataController {
302301
| DELETE | `/api/data/:object/:id` | Delete record |
303302
| GET | `/api/metadata/:object` | Get object metadata |
304303

305-
## Layer 5: UI Layer (@objectos/ui)
304+
## Layer 5: UI Layer
306305

307-
### Component Architecture
308-
309-
The UI layer provides **metadata-driven React components**:
310-
311-
```typescript
312-
// Automatically generates a data grid from metadata
313-
<ObjectGrid
314-
objectName="contacts"
315-
kernel={kernel}
316-
/>
317-
318-
// Automatically generates a form from metadata
319-
<ObjectForm
320-
objectName="contacts"
321-
recordId={id}
322-
kernel={kernel}
323-
/>
324-
```
325-
326-
### Key Components
327-
328-
1. **ObjectGrid**: Airtable-like data grid with inline editing
329-
2. **ObjectForm**: Salesforce-like detail form with sections
330-
3. **ObjectChart**: Chart component for analytics
331-
4. **FilterBuilder**: Visual query builder
332-
333-
### Design System
334-
335-
- **Framework**: React 18+ with TypeScript
336-
- **Styling**: Tailwind CSS
337-
- **Components**: Shadcn/ui
338-
- **State**: React Query for server state
339-
- **Grid**: TanStack Table
306+
**Note**: The UI layer has been moved to a separate project and is no longer part of this monorepo. The UI components are developed independently and can be integrated with ObjectOS through the API layer.
340307

341308
## Extension Points
342309

CONTRIBUTING.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,20 +18,21 @@ objectos/
1818
├── packages/
1919
│ ├── kernel/ # @objectos/kernel - Core runtime engine
2020
│ ├── server/ # @objectos/server - NestJS HTTP server
21-
│ ├── ui/ # @objectos/ui - React components
2221
│ └── presets/ # @objectos/preset-* - Standard metadata
22+
├── apps/
23+
│ └── site/ # @objectos/site - Documentation site
2324
├── examples/ # Example applications
24-
├── docs/ # VitePress documentation
25-
└── apps/ # Full-stack applications (if any)
25+
└── docs/ # VitePress documentation
2626
```
2727

28+
**Note**: The UI package (`@objectos/ui`) has been moved to a separate repository and is developed independently.
29+
2830
### Package Responsibilities
2931

3032
| Package | Role | Can Import | Cannot Import |
3133
|---------|------|------------|---------------|
3234
| `@objectos/kernel` | Core logic, object registry, hooks | `@objectql/types`, `@objectql/core` | `pg`, `express`, `nest` |
3335
| `@objectos/server` | HTTP layer, REST API | `@objectos/kernel`, `@nestjs/*` | `knex`, direct SQL |
34-
| `@objectos/ui` | React components | `@objectos/kernel` types | Server-specific code |
3536
| `@objectos/preset-*` | Metadata YAML files | None | No .ts files allowed |
3637

3738
## Development Standards

QUICK_REFERENCE.md

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -113,19 +113,9 @@ NestJS HTTP server.
113113
- `DELETE /api/data/:object/:id` - Delete record
114114
- `GET /api/metadata/:object` - Get metadata
115115

116-
### @objectos/ui
116+
### UI Components
117117

118-
React UI components.
119-
120-
```tsx
121-
import { ObjectGrid, ObjectForm } from '@objectos/ui';
122-
123-
// Auto-generated data grid
124-
<ObjectGrid objectName="contacts" />
125-
126-
// Auto-generated form
127-
<ObjectForm objectName="contacts" recordId={id} />
128-
```
118+
**Note**: The UI components have been moved to a separate project and are no longer part of this monorepo. They are developed independently and can be integrated with ObjectOS through the API layer.
129119

130120
## Field Types
131121

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ ObjectOS is built as a modular Monorepo using **NestJS** and follows the **@obje
5252

5353
### Protocol Compliance
5454

55-
ObjectOS adheres to the [@objectstack/spec](https://www.npmjs.com/package/@objectstack/spec) protocol, which defines:
55+
ObjectOS adheres to the [@objectstack/spec](https://github.com/objectstack-ai/spec) protocol, which defines:
5656
- **Kernel Protocol**: Plugin lifecycle, manifest structure, and context interfaces
5757
- **Data Protocol**: Object schemas, field types, queries, and hooks
5858
- **System Protocol**: Audit logging, events, and job scheduling

apps/site/content/docs/guide/index.mdx

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ ObjectOS is a **metadata-driven runtime engine** that interprets and executes bu
2323
│ ObjectOS (Runtime Repository - This One) │
2424
│ - @objectos/kernel: Execution engine │
2525
│ - @objectos/server: HTTP API layer │
26-
│ - @objectos/ui: React components │
2726
└─────────────────────┬───────────────────────────┘
2827
2928
@@ -304,22 +303,9 @@ curl -X POST http://localhost:3000/api/data/contacts \
304303
}'
305304
```
306305

307-
## Using the UI Components
306+
## Using UI Components
308307

309-
ObjectOS provides React components that automatically render based on metadata:
310-
311-
```tsx
312-
import { ObjectGrid, ObjectForm } from '@objectos/ui';
313-
314-
function ContactsPage() {
315-
return (
316-
<div>
317-
<h1>Contacts</h1>
318-
{/* Automatically generates a data grid */}
319-
<ObjectGrid objectName="contacts" />
320-
</div>
321-
);
322-
}
308+
> **Note**: The UI components have been moved to a separate project and are no longer part of this monorepo. They can be integrated with ObjectOS through the HTTP API layer (`@objectos/server`) which provides REST endpoints for metadata and data access.
323309

324310
function ContactDetail({ contactId }) {
325311
return (

apps/site/content/docs/guide/logic-actions.mdx

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -466,20 +466,24 @@ const result = await kernel.executeAction('contacts.sendEmail', {
466466

467467
### From UI
468468

469-
```typescript
470-
import { useAction } from '@objectos/ui';
469+
> **Note**: The UI components have been moved to a separate project. The example below shows the conceptual pattern for invoking actions from a UI application.
471470
471+
```typescript
472+
// Example pattern for UI integration
472473
function ContactDetail({ contactId }) {
473-
const sendEmail = useAction('contacts.sendEmail');
474-
475474
const handleSendEmail = async () => {
476-
const result = await sendEmail({
477-
id: contactId,
478-
subject: 'Follow up',
479-
body: 'Thank you for your interest'
475+
const result = await fetch('/api/actions/contacts.sendEmail', {
476+
method: 'POST',
477+
headers: { 'Content-Type': 'application/json' },
478+
body: JSON.stringify({
479+
id: contactId,
480+
subject: 'Follow up',
481+
body: 'Thank you for your interest'
482+
})
480483
});
481484

482-
alert(result.message);
485+
const data = await result.json();
486+
alert(data.message);
483487
};
484488

485489
return (

apps/site/content/docs/guide/platform-components.mdx

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -53,18 +53,9 @@ The `@objectos/server` package is the Gateway. It translates HTTP/WebSockets int
5353

5454
## 🖥️ 3. Interaction Support (UI Layer)
5555

56-
The `@objectos/ui` (Components) and `@objectos/web` (App) packages provide the human interface.
56+
> **Note**: The UI components have been moved to a separate project and are no longer part of this monorepo.
5757
58-
### Component Breakdown
59-
60-
| Component | Responsibility | Implementation Notes |
61-
| :--- | :--- | :--- |
62-
| **ObjectGrid** | Data Table with "Excel-like" features. | Uses **TanStack Table**. Implements Virtual Scroll for 100k+ rows. |
63-
| **ObjectForm** | Dynamic Record Editor. | Uses **React-Hook-Form**. Generates Zod schema from Metadata at runtime. |
64-
| **LayoutShell** | Application chrome (Sidebar, Header). | Responsive. Adapts menu based on user permissions. |
65-
| **DataQueryHook** | React Query wrapper for API. | Cache management. `useQuery(['data', 'contacts'], ...)` |
66-
67-
### Functional Realization: "Dynamic Types"
58+
The UI layer provides the human interface, integrating with ObjectOS through the HTTP API exposed by `@objectos/server`.
6859
* **Design**: The UI downloads metadata initially.
6960
* **Flow**: `schema.json` received -> `FieldFactory` maps `type: 'date'` to `<DatePicker />` -> Renders Cell.
7061

0 commit comments

Comments
 (0)