1571 extensibility twenty cli add command to create base entities like object agent or serverless (#14722)

Remove default agent when init new app

add command to create a new entity (object or agent)



https://github.com/user-attachments/assets/b8f28281-2b40-4eaa-a958-55d2dd5183c8
This commit is contained in:
martmull
2025-09-25 16:43:26 +02:00
committed by GitHub
parent 1d743359ba
commit 9b3e2bfb45
5 changed files with 191 additions and 30 deletions
@@ -13,7 +13,8 @@ describe('app-template', () => {
describe('createBasePackageJson', () => {
it('should create a valid app package.json with correct structure', () => {
const appName = 'my-test-app';
const basePackageJson = createBasePackageJson(appName);
const description = 'A Twenty application for my-test-app';
const basePackageJson = createBasePackageJson(appName, description);
expect(basePackageJson).toEqual({
$schema:
@@ -27,7 +28,7 @@ describe('app-template', () => {
it('should handle single word app names', () => {
const appName = 'calculator';
const basePackageJson = createBasePackageJson(appName);
const basePackageJson = createBasePackageJson(appName, '');
expect(basePackageJson.label).toBe('Calculator');
expect(basePackageJson.standardId).toBe('mocked-uuid-12345');
@@ -35,14 +36,14 @@ describe('app-template', () => {
it('should handle kebab-case app names correctly', () => {
const appName = 'user-management-system';
const basePackageJson = createBasePackageJson(appName);
const basePackageJson = createBasePackageJson(appName, '');
expect(basePackageJson.label).toBe('User Management System');
expect(basePackageJson.standardId).toBe('mocked-uuid-12345');
});
it('should generate unique standardIds', () => {
const basePackageJson = createBasePackageJson('test-app');
const basePackageJson = createBasePackageJson('test-app', '');
expect(basePackageJson.standardId).toBeDefined();
expect(typeof basePackageJson.standardId).toBe('string');
@@ -2,7 +2,10 @@ import { randomUUID } from 'crypto';
import { AgentManifest, PackageJson } from '../types/config.types';
import { getSchemaUrls } from './schema-validator';
export const createBasePackageJson = (appName: string): PackageJson => {
export const createBasePackageJson = (
appName: string,
description: string,
): PackageJson => {
const schemas = getSchemaUrls();
return {
@@ -12,7 +15,7 @@ export const createBasePackageJson = (appName: string): PackageJson => {
.split('-')
.map((word) => word.charAt(0).toUpperCase() + word.slice(1))
.join(' '),
description: `A Twenty application for ${appName}`,
description,
version: '0.0.1',
};
};