Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .github/WORKFLOWS.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,6 @@ This document describes all GitHub Actions workflows and automation configured f
**Labels Applied:**
- `kernel` - Changes in `packages/kernel/**`
- `server` - Changes in `packages/server/**`
- `ui` - Changes in `packages/ui/**`
- `presets` - Changes in `packages/presets/**`
- `documentation` - Changes in docs or markdown files
- `workflows` - Changes in `.github/**`
Expand Down
4 changes: 0 additions & 4 deletions .github/labeler.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,6 @@
- changed-files:
- any-glob-to-any-file: 'packages/server/**/*'

'ui':
- changed-files:
- any-glob-to-any-file: 'packages/ui/**/*'

'presets':
- changed-files:
- any-glob-to-any-file: 'packages/presets/**/*'
Expand Down
4 changes: 0 additions & 4 deletions .github/labels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,6 @@ labels:
color: '0366d6'
description: 'Changes in @objectos/server package'

- name: ui
color: '0366d6'
description: 'Changes in @objectos/ui package'

- name: presets
color: '0366d6'
description: 'Changes in preset packages'
Expand Down
41 changes: 4 additions & 37 deletions ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ ObjectOS is a **metadata-driven runtime engine** that transforms declarative YAM

## Protocol Foundation: @objectstack/spec

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:
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:

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

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

## Core Architectural Principle

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

## Layer 5: UI Layer (@objectos/ui)
## Layer 5: UI Layer

### Component Architecture

The UI layer provides **metadata-driven React components**:

```typescript
// Automatically generates a data grid from metadata
<ObjectGrid
objectName="contacts"
kernel={kernel}
/>

// Automatically generates a form from metadata
<ObjectForm
objectName="contacts"
recordId={id}
kernel={kernel}
/>
```

### Key Components

1. **ObjectGrid**: Airtable-like data grid with inline editing
2. **ObjectForm**: Salesforce-like detail form with sections
3. **ObjectChart**: Chart component for analytics
4. **FilterBuilder**: Visual query builder

### Design System

- **Framework**: React 18+ with TypeScript
- **Styling**: Tailwind CSS
- **Components**: Shadcn/ui
- **State**: React Query for server state
- **Grid**: TanStack Table
**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.

## Extension Points

Expand Down
9 changes: 5 additions & 4 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,20 +18,21 @@ objectos/
├── packages/
│ ├── kernel/ # @objectos/kernel - Core runtime engine
│ ├── server/ # @objectos/server - NestJS HTTP server
│ ├── ui/ # @objectos/ui - React components
│ └── presets/ # @objectos/preset-* - Standard metadata
├── apps/
│ └── site/ # @objectos/site - Documentation site
├── examples/ # Example applications
├── docs/ # VitePress documentation
└── apps/ # Full-stack applications (if any)
└── docs/ # VitePress documentation
```

**Note**: The UI package (`@objectos/ui`) has been moved to a separate repository and is developed independently.

### Package Responsibilities

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

## Development Standards
Expand Down
14 changes: 2 additions & 12 deletions QUICK_REFERENCE.md
Original file line number Diff line number Diff line change
Expand Up @@ -113,19 +113,9 @@ NestJS HTTP server.
- `DELETE /api/data/:object/:id` - Delete record
- `GET /api/metadata/:object` - Get metadata

### @objectos/ui
### UI Components

React UI components.

```tsx
import { ObjectGrid, ObjectForm } from '@objectos/ui';

// Auto-generated data grid
<ObjectGrid objectName="contacts" />

// Auto-generated form
<ObjectForm objectName="contacts" recordId={id} />
```
**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.

## Field Types

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ ObjectOS is built as a modular Monorepo using **NestJS** and follows the **@obje

### Protocol Compliance

ObjectOS adheres to the [@objectstack/spec](https://www.npmjs.com/package/@objectstack/spec) protocol, which defines:
ObjectOS adheres to the [@objectstack/spec](https://github.com/objectstack-ai/spec) protocol, which defines:
- **Kernel Protocol**: Plugin lifecycle, manifest structure, and context interfaces
- **Data Protocol**: Object schemas, field types, queries, and hooks
- **System Protocol**: Audit logging, events, and job scheduling
Expand Down
18 changes: 2 additions & 16 deletions apps/site/content/docs/guide/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ ObjectOS is a **metadata-driven runtime engine** that interprets and executes bu
│ ObjectOS (Runtime Repository - This One) │
│ - @objectos/kernel: Execution engine │
│ - @objectos/server: HTTP API layer │
│ - @objectos/ui: React components │
└─────────────────────┬───────────────────────────┘
Expand Down Expand Up @@ -304,22 +303,9 @@ curl -X POST http://localhost:3000/api/data/contacts \
}'
```

## Using the UI Components
## Using UI Components

ObjectOS provides React components that automatically render based on metadata:

```tsx
import { ObjectGrid, ObjectForm } from '@objectos/ui';

function ContactsPage() {
return (
<div>
<h1>Contacts</h1>
{/* Automatically generates a data grid */}
<ObjectGrid objectName="contacts" />
</div>
);
}
> **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.

function ContactDetail({ contactId }) {
return (
Expand Down
22 changes: 13 additions & 9 deletions apps/site/content/docs/guide/logic-actions.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -466,20 +466,24 @@ const result = await kernel.executeAction('contacts.sendEmail', {

### From UI

```typescript
import { useAction } from '@objectos/ui';
> **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.

```typescript
// Example pattern for UI integration
function ContactDetail({ contactId }) {
const sendEmail = useAction('contacts.sendEmail');

const handleSendEmail = async () => {
const result = await sendEmail({
id: contactId,
subject: 'Follow up',
body: 'Thank you for your interest'
const result = await fetch('/api/actions/contacts.sendEmail', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
id: contactId,
subject: 'Follow up',
body: 'Thank you for your interest'
})
});

alert(result.message);
const data = await result.json();
alert(data.message);
};

return (
Expand Down
13 changes: 2 additions & 11 deletions apps/site/content/docs/guide/platform-components.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -53,18 +53,9 @@ The `@objectos/server` package is the Gateway. It translates HTTP/WebSockets int

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

The `@objectos/ui` (Components) and `@objectos/web` (App) packages provide the human interface.
> **Note**: The UI components have been moved to a separate project and are no longer part of this monorepo.

### Component Breakdown

| Component | Responsibility | Implementation Notes |
| :--- | :--- | :--- |
| **ObjectGrid** | Data Table with "Excel-like" features. | Uses **TanStack Table**. Implements Virtual Scroll for 100k+ rows. |
| **ObjectForm** | Dynamic Record Editor. | Uses **React-Hook-Form**. Generates Zod schema from Metadata at runtime. |
| **LayoutShell** | Application chrome (Sidebar, Header). | Responsive. Adapts menu based on user permissions. |
| **DataQueryHook** | React Query wrapper for API. | Cache management. `useQuery(['data', 'contacts'], ...)` |

### Functional Realization: "Dynamic Types"
The UI layer provides the human interface, integrating with ObjectOS through the HTTP API exposed by `@objectos/server`.
* **Design**: The UI downloads metadata initially.
* **Flow**: `schema.json` received -> `FieldFactory` maps `type: 'date'` to `<DatePicker />` -> Renders Cell.

Expand Down
4 changes: 3 additions & 1 deletion apps/site/content/docs/guide/ui-framework.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@
title: Standard UI Components Reference
---

This document defines the standard component library for `@objectos/ui`. These components are the reference implementations for the **View & Layout Specifications**.
> **Note**: The UI components have been moved to a separate project and are no longer part of this monorepo. This document is kept for reference and describes the design principles for UI components that integrate with ObjectOS.
This document defines the standard component library for UI components. These components are the reference implementations for the **View & Layout Specifications**.

---

Expand Down
14 changes: 0 additions & 14 deletions apps/web/index.html

This file was deleted.

46 changes: 0 additions & 46 deletions apps/web/package.json

This file was deleted.

5 changes: 0 additions & 5 deletions apps/web/postcss.config.js

This file was deleted.

12 changes: 0 additions & 12 deletions apps/web/public/logo.svg

This file was deleted.

Loading
Loading